Anonymous user
Bulls and cows: Difference between revisions
→{{header|Elena}}
m (Moved Kotlin entry into correct alphabetical order) |
|||
Line 1,357:
=={{header|Elena}}==
ELENA 3.
<lang elena>
class GameMaster
Line 1,372 ⟶ 1,371:
var aRandomNumbers := (1,2,3,4,5,6,7,8,9) randomize:9.
theNumbers := aRandomNumbers Subarray
theAttempt := Integer new:1.
]
Line 1,378 ⟶ 1,377:
ask
[
var aRow := console
^ aRow toArray.
Line 1,389 ⟶ 1,388:
if (aGuess length != 4)
[ aBulls
[
try(0 to:3
[
var ch := aGuess@i.
var aNumber := ch literal; toInt.
// check range
ifnot ((aNumber > 0) && (aNumber < 10))
[ InvalidArgumentException new; raise. ].
// check duplicates
var duplicate := aGuess seek
if (nil != duplicate)
[
InvalidArgumentException new; raise.
].
if (aNumber ==
[ aBulls
[
(theNumbers ifExists:aNumber)
? [ aCows
].
])
]
}.
].
^ aBulls =>
-1 [ console writeLine:"Not a valid guess.". ^ true
4 [ console writeLine:"Congratulations! You have won!". ^ false
! [
theAttempt
console
^ true
].
]
Line 1,437 ⟶ 1,438:
var aGameMaster := GameMaster new.
console readChar.
|