36 lines
751 B
Text
36 lines
751 B
Text
var size = 4
|
|
var num = @(1..9).shuffle.first(size)
|
|
|
|
for (var guesses = 1; true; guesses++) {
|
|
|
|
var bulls = 0
|
|
var cows = 0
|
|
|
|
var input =
|
|
read("Input: ", String).chars \
|
|
.uniq \
|
|
.grep(/^[1-9]$/) \
|
|
.map{.to_n}
|
|
|
|
if (input.len != size) {
|
|
warn "Invalid input!\n"
|
|
guesses--
|
|
next
|
|
}
|
|
|
|
if (input == num) {
|
|
printf("You did it in %d attempts!\n", guesses)
|
|
break
|
|
}
|
|
|
|
for i (^num) {
|
|
if (num[i] == input[i]) {
|
|
bulls++
|
|
}
|
|
elsif (num.contains(input[i])) {
|
|
cows++
|
|
}
|
|
}
|
|
|
|
"Bulls: %d; Cows: %d\n".printf(bulls, cows)
|
|
}
|