Bulls and cows: Difference between revisions
Content added Content deleted
(Added zkl) |
|||
Line 4,179: | Line 4,179: | ||
End Sub |
End Sub |
||
End Module</lang> |
End Module</lang> |
||
=={{header|zkl}}== |
|||
Play one game: |
|||
<lang zkl>d:=D(); do{ d[(1).random(10)]=True }while(d.len()<4); |
|||
abcd:=d.keys.shuffle(); |
|||
while(1){ |
|||
guess:=ask("4 digits: ")-" ,"; |
|||
if(guess.len()!=4 or guess.unique().len()!=4) continue; |
|||
bulls:=abcd.zipWith('==,guess).sum(0); |
|||
cows:=guess.split("").enumerate() |
|||
.reduce('wrap(s,[(n,c)]){ s + (d.find(c,False) and abcd[n]!=c) },0); |
|||
if(bulls==4) { println("You got it!"); break; } |
|||
"%d bull%s and %d cow%s".fmt(bulls,s(bulls),cows,s(cows)).println(); |
|||
} |
|||
fcn s(n){ (n!=1) and "s" or "" }</lang> |
|||
{{out}} |
|||
<pre> |
|||
4 digits: 4,5,6,7 |
|||
1 bull and 0 cows |
|||
4 digits: 1234 |
|||
0 bulls and 2 cows |
|||
4 digits: 3528 |
|||
You got it! |
|||
</pre> |