Pig the dice game/Player: Difference between revisions
m
→{{header|Wren}}: Changed to Wren S/H
Thundergnat (talk | contribs) m (syntax highlighting fixup automation) |
m (→{{header|Wren}}: Changed to Wren S/H) |
||
(One intermediate revision by one other user not shown) | |||
Line 3,679:
<syntaxhighlight lang="ruby">var (games=100) = ARGV.map{.to_i}...
define DIE = 1..6
define GOAL = 100
class Player(score=0, ante=0, rolls=0, strategy={false}) {
method turn {
rolls = 0
ante = 0
loop {
rolls++
given (
when (1) {
ante = 0
break
}
case (roll > 1) {
ante += roll
}
}
((score + ante >= GOAL) || strategy) && break
}
score += ante
}
}
var players = []
# default, go-for-broke, always roll again
players[0] = Player
# try to roll 5 times but no more per turn
players[1] = Player
# try to accumulate at least 20 points per turn
players[2] = Player
# random but 90% chance of rolling again
players[3] = Player
# random but more conservative as approaches goal
players[4] = Player
var wins =
games.times {
var player = -1
loop {
player++
var p = players[player % players.len]
p.turn
p.score >= GOAL && break
}
wins[player % players.len]++
players.map{.score}.join("\t").say
players.each { |p| p.score = 0 }
}
say "\nSCORES: for #{games} games"
say wins.join("\t")
{{out}}
<pre>
Line 4,037:
=={{header|Wren}}==
{{trans|Sidef}}
<syntaxhighlight lang="
import "os" for Process
|