Rock-paper-scissors: Difference between revisions
m
→{{header|Sidef}}: code simplifications
m (→{{header|REXX}}: removed STYLE from the PRE html tag.) |
m (→{{header|Sidef}}: code simplifications) |
||
Line 3,817:
<lang ruby>const rps = %w(r p s);
"Rock breaks scissors",
"Paper covers rock",
Line 3,823:
];
say <<"EOT";
EOT
var plays = 0;
var aScore = 0;
var pScore = 0;
var pcf = [0,0,0]; # pcf = player choice frequency
var aChoice =
loop {
var pi = Sys.scanln("Play: "
▲ pi == 'q' && (break);
var pChoice = rps.indexWhere{_ == pi};
if (
STDERR.print("Invalid input!\n"
}
Line 3,856 ⟶ 3,853:
">> My play: %-8s".printf(rps[aChoice]);
given ((aChoice - pChoice + 3
when (0)
say "Tie."
}
when (1)
"%-*s %s".printlnf(30, msg[aChoice], 'My point');
aScore++;
}
when (2)
"%-*s %s".printlnf(30, msg[pChoice], 'Your point');
pScore++;
};
# show score
"%-6s".printf("%d:%d"
# compute ai choice for next play
switch (var rn = (plays.rand.int))
case (rn < pcf[0])
aChoice = 1;
}
case (pcf[0]+pcf[1] > rn)
aChoice = 2;
}
default {
aChoice = 0;
};
▲}.run;</lang>
'''Sample run:'''
|