Bulls and cows: Difference between revisions

Content added Content deleted
(Undo revision 171825 by DatportomanReinstate Haskell.)
(Simpler D entry)
Line 692: Line 692:
<lang d>void main() {
<lang d>void main() {
import std.stdio, std.random, std.string, std.algorithm,
import std.stdio, std.random, std.string, std.algorithm,
std.range, std.conv;
std.range, std.conv, std.ascii;


immutable hidden = "123456789"d.randomCover.take(4).array;
immutable hidden = "123456789"d.randomCover.take(4).array;
Line 698: Line 698:
"Next guess: ".write;
"Next guess: ".write;
immutable d = readln.strip.dtext;
immutable d = readln.strip.dtext;
if (d.length == 4 && d.countchars("1-9") == 4 &&
if (d.count == 4 && d.all!isDigit &&
d.dup.sort().uniq.count == 4) {
d.dup.sort().uniq.count == 4) {
immutable bulls = d.zip(hidden).count!(p => p[0] == p[1]);
immutable bulls = d.zip(hidden).count!(p => p[0] == p[1]);