RosettaCodeData/Task/Rock-paper-scissors/PL-I/rock-paper-scissors.pli
2014-01-17 05:34:36 +00:00

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;