31 lines
1.3 KiB
Text
31 lines
1.3 KiB
Text
rock: procedure options (main); /* 30 October 2013 */
|
|
declare move character (1), cm fixed binary;
|
|
|
|
put ('The Rock-Paper-Scissors game');
|
|
put skip list ("please type 'r' for rock, 'p' for paper, 's' for scissors.");
|
|
put skip list ("Anything else finishes:");
|
|
do forever;
|
|
get edit (move) (a(1));
|
|
move = lowercase(move);
|
|
if index('rpsq', move) = 0 then iterate;
|
|
if move = 'q' then stop;
|
|
cm = random()*3; /* computer moves: 0 = rock, 1 = paper, 2 = scissors */
|
|
select (cm);
|
|
when (0) select (move);
|
|
when ('r') put list ('rock and rock: A draw');
|
|
when ('p') put list ('paper beats rock: You win');
|
|
when ('s') put list ('rock breaks scissors: I win');
|
|
end;
|
|
when (1) select (move);
|
|
when ('r') put list ('paper beats rock: I win');
|
|
when ('p') put list ('paper and paper: A draw');
|
|
when ('s') put list ('scissors cut paper: You win');
|
|
end;
|
|
when (2) select (move);
|
|
when ('r') put list ('rock breaks scissors: You win');
|
|
when ('p') put list ('scissors cuts paper: I win');
|
|
when ('s') put list ('Scissors and Scissors: A draw');
|
|
end;
|
|
end;
|
|
end;
|
|
end rock;
|