Rock-paper-scissors: Difference between revisions
Content added Content deleted
m (→{{header|J}}) |
|||
Line 265: | Line 265: | ||
My wins: 4 |
My wins: 4 |
||
Your wins: 1</lang> |
Your wins: 1</lang> |
||
=={{header|Icon}} and {{header|Unicon}}== |
|||
<lang Icon>link printf |
|||
procedure main() |
|||
printf("Welcome to Rock, Paper, Scissors.\n_ |
|||
Rock beats scissors, Scissors beat paper, and Paper beats rock.\n\n") |
|||
historyP := ["rock","paper","scissors"] # seed player history |
|||
winP := winC := draws := 0 # totals |
|||
beats := ["rock","scissors","paper","rock"] # what beats what 1 apart |
|||
repeat { |
|||
printf("Enter your choice or rock(r), paper(p), scissors(s) or quit(q):") |
|||
turnP := case map(read()) of { |
|||
"q"|"quit": break |
|||
"r"|"rock": "rock" |
|||
"p"|"paper": "paper" |
|||
"s"|"scissors": "scissors" |
|||
default: printf(" - invalid choice.\n") & next |
|||
} |
|||
turnC := beats[(?historyP == beats[i := 2 to *beats],i-1)] # choose |
|||
put(historyP,turnP) # record history |
|||
printf("You chose %s, computer chose %s",turnP,turnC) |
|||
(beats[p := 1 to *beats] == turnP) & |
|||
(beats[c := 1 to *beats] == turnC) & (abs(p-c) <= 1) # rank play |
|||
if p = c then |
|||
printf(" - draw (#%d)\n",draws +:= 1 ) |
|||
else if p > c then |
|||
printf(" - player win(#%d)\n",winP +:= 1) |
|||
else |
|||
printf(" - computer win(#%d)\n",winC +:= 1) |
|||
} |
|||
printf("\nResults:\n %d rounds\n %d Draws\n %d Computer wins\n %d Player wins\n", |
|||
winP+winC+draws,draws,winC,winP) |
|||
end</lang> |
|||
{{libheader|Icon Programming Library}} |
|||
[http://www.cs.arizona.edu/icon/library/src/procs/printf.icn printf.icn provides printf] |
|||
Sample output:<pre>Welcome to Rock, Paper, Scissors. |
|||
Rock beats scissors, Scissors beat paper, and Paper beats rock. |
|||
Enter your choice or rock(r), paper(p), scissors(s) or quit(q):s |
|||
You chose scissors, computer chose scissors - draw (#1) |
|||
Enter your choice or rock(r), paper(p), scissors(s) or quit(q):p |
|||
You chose paper, computer chose paper - draw (#2) |
|||
Enter your choice or rock(r), paper(p), scissors(s) or quit(q):r |
|||
You chose rock, computer chose scissors - computer win(#1) |
|||
Enter your choice or rock(r), paper(p), scissors(s) or quit(q):r |
|||
You chose rock, computer chose rock - draw (#3) |
|||
Enter your choice or rock(r), paper(p), scissors(s) or quit(q):p |
|||
You chose paper, computer chose paper - draw (#4) |
|||
Enter your choice or rock(r), paper(p), scissors(s) or quit(q):s |
|||
You chose scissors, computer chose scissors - draw (#5) |
|||
Enter your choice or rock(r), paper(p), scissors(s) or quit(q):r |
|||
You chose rock, computer chose rock - draw (#6) |
|||
Enter your choice or rock(r), paper(p), scissors(s) or quit(q):r |
|||
You chose rock, computer chose paper - player win(#1) |
|||
Enter your choice or rock(r), paper(p), scissors(s) or quit(q):q |
|||
Results: |
|||
8 rounds |
|||
6 Draws |
|||
1 Computer wins |
|||
1 Player wins</pre> |
|||
=={{header|Java}}== |
=={{header|Java}}== |