Bulls and cows: Difference between revisions

Updated D entry
(Added Pascal)
(Updated D entry)
Line 695:
enum size = 4;
immutable ddigits = "123456789"d;
//immutable chosen = ddigits.randomCover.take(size).array;
const chosen = ddigits.randomCover(rndGen).take(size).array;
writeln("Guess a number composed of ", size,
" unique digits from 1 to 9 in random order.");
Line 708 ⟶ 707:
guess = readln.strip.dtext;
if (guess.countchars(ddigits) == size &&
guess.dup.sort().uniq.walkLengthcount == size)
break;
writefln("I need %d unique digits from 1 to 9, no spaces", size);
Line 718 ⟶ 717:
}
 
immutable bulls = guess.zip(guess, chosen).count!q{ a[0] == a[1] };
immutable cows = iota(size).iota
.count!(i => guess[i] != chosen[i] &&
chosen.canFind(guess[i]));