Rock-paper-scissors: Difference between revisions
m
→{{header|Sidef}}: minor code simplifications
m (added whitespace before the TOC (table of contents), added a ;Task: (bold) header, changed AI to bold, otherwise it looked like Al (Alfred). .) |
m (→{{header|Sidef}}: minor code simplifications) |
||
Line 4,246:
=={{header|Sidef}}==
<lang ruby>const rps = %w(r p s)
const msg = [
"Rock breaks scissors",
"Paper covers rock",
"Scissors cut paper",
]
say <<"EOT";
\n>> Rock Paper Scissors <<\n
Line 4,260:
** Running score shown as <your wins>:<my wins>
EOT
var plays = 0
var aScore = 0
var pScore = 0
var pcf = [0,0,0]
var aChoice = 3.
loop {
var pi = Sys.scanln("Play: ")
pi == 'q' && break
var pChoice = rps.index(pi)
if (pChoice == -1) {
STDERR.print("Invalid input!\n")
next
}
++pcf[pChoice]
++plays
# show result of play
">> My play:
given ((aChoice - pChoice + 3) % 3) {
when (0) { say "Tie." }
when (1) { "%-*s
when (2) { "%-*s
}
# show score
"%-6s".printf("%d:%d" % (pScore, aScore))
# compute ai choice for next play
given
case (rn < pcf[0]) { aChoice = 1 }
case (pcf[0]+pcf[1] > rn) { aChoice = 2 }
|