22 lines
587 B
Text
22 lines
587 B
Text
const SIZE = 4
|
|
|
|
secret = _.sample ['1' to '9'], SIZE
|
|
|
|
for ever
|
|
var guess
|
|
for ever
|
|
guess := _.uniq prompt 'Enter a guess: '
|
|
if guess.length === SIZE and not _.difference guess, ['1' to '9'] .length
|
|
break
|
|
say 'Malformed guess; try again.'
|
|
bulls = cows = 0
|
|
for i til SIZE
|
|
if guess[i] === secret[i]
|
|
++bulls
|
|
else if _.contains secret, guess[i]
|
|
++cows
|
|
if bulls === SIZE
|
|
break
|
|
say "#bulls bull#{[if bulls !== 1 then 's']}, #cows cow#{[if cows !== 1 then 's']}."
|
|
|
|
say 'A winner is you!'
|