Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
43
Task/Bulls-and-cows/XPL0/bulls-and-cows.xpl0
Normal file
43
Task/Bulls-and-cows/XPL0/bulls-and-cows.xpl0
Normal file
|
|
@ -0,0 +1,43 @@
|
|||
int Bulls, Cows, Secret(4), Guess(4), Guesses, Used, I, J, Done, Digit, Okay;
|
||||
[Used:= 0; \generate secret random number using digits
|
||||
for I:= 0 to 3 do \ 1 to 9 without any repeated digits
|
||||
[repeat Digit:= Ran(9)+1;
|
||||
until (Used & 1<<Digit) = 0;
|
||||
Used:= Used ! 1<<Digit;
|
||||
Secret(I):= Digit + ^0;
|
||||
];
|
||||
Text(0, "Guess the secret number.^m^j");
|
||||
Text(0, "Guesses must be four different digits, 1 to 9.^m^j");
|
||||
Guesses:= 0;
|
||||
loop [Done:= false; \main game loop
|
||||
repeat Text(0, "Enter your guess: "); \get valid 4-digits from player
|
||||
OpenI(0); Used:= 0; I:= 0;
|
||||
loop [Digit:= ChIn(0);
|
||||
Okay:= Digit>=^1 and Digit<=^9;
|
||||
Digit:= Digit & $0F; \convert ASCII to binary
|
||||
if not Okay or Used & 1<<Digit then
|
||||
[Text(0,
|
||||
"Please enter four distinct digits, 1 thru 9.^m^j");
|
||||
quit;
|
||||
];
|
||||
Guess(I):= Digit + ^0;
|
||||
Used:= Used ! 1<<Digit;
|
||||
I:= I+1;
|
||||
if I = 4 then [Done:= true; quit];
|
||||
];
|
||||
until Done;
|
||||
Guesses:= Guesses+1;
|
||||
Bulls:= 0; Cows:= 0;
|
||||
for I:= 0 to 3 do
|
||||
for J:= 0 to 3 do
|
||||
if Guess(I) = Secret(J) then
|
||||
if I=J then Bulls:= Bulls+1
|
||||
else Cows:= Cows+1;
|
||||
Text(0, "Bulls: "); IntOut(0, Bulls);
|
||||
Text(0, " Cows: "); IntOut(0, Cows);
|
||||
CrLf(0);
|
||||
if Bulls = 4 then quit;
|
||||
];
|
||||
Text(0, "Congratulations! You won in "); IntOut(0, Guesses);
|
||||
Text(0, " guesses.^m^j");
|
||||
]
|
||||
Loading…
Add table
Add a link
Reference in a new issue