Pig the dice game: Difference between revisions

Content added Content deleted
No edit summary
Line 790: Line 790:
Button["Play again.",
Button["Play again.",
roundscore = 0; (score@# = 0) & /@ players]]}]</lang>
roundscore = 0; (score@# = 0) & /@ players]]}]</lang>
=={{header|Objeck}}==
<lang objeck>
class Pig {
function : Main(args : String[]) ~ Nil {
player_count := 2;
max_score := 100;
safe_score := Int->New[player_count];
player := 0; score := 0;
while(true) {
safe := safe_score[player];
" Player {$player}: ({$safe}, {$score}) Rolling? (y/n) "->PrintLine();
rolling := IO.Console->ReadString();
if(safe_score[player] + score < max_score & (rolling->Equals("y") | rolling->Equals("yes"))) {
rolled := ((Float->Random() * 100.0)->As(Int) % 6) + 1;
" Rolled {$rolled}"->PrintLine();
if(rolled = 1) {
safe := safe_score[player];
" Bust! you lose {$score} but still keep your previous {$safe}\n"->PrintLine();
score := 0;
player := (player + 1) % player_count;
}
else {
score += rolled;
};
}
else {
safe_score[player] += score;
if(safe_score[player] >= max_score) {
break;
};
safe := safe_score[player];
" Sticking with {$safe}\n"->PrintLine();
score := 0;
player := (player + 1) % player_count;
};
};
safe := safe_score[player];
"\n\nPlayer {$player} wins with a score of {$safe}"->PrintLine();
}
}
</lang>
<pre>
Player 0: (0, 0) Rolling? (y/n)
y
Rolled 3
Player 0: (0, 3) Rolling? (y/n)
y
Rolled 2
Player 0: (0, 5) Rolling? (y/n)
...
Rolled 4
Player 1: (56, 30) Rolling? (y/n)
n
Sticking with 86

Player 0: (94, 0) Rolling? (y/n)
y
Rolled 6
Player 0: (94, 6) Rolling? (y/n)
n
...
Rolled 4
Player 1: (56, 30) Rolling? (y/n)
n
Sticking with 86

Player 0: (94, 0) Rolling? (y/n)
y
Rolled 6
Player 0: (94, 6) Rolling? (y/n)
n
</pre>

=={{header|Perl 6}}==
=={{header|Perl 6}}==
{{works with|niecza|2012-09-12}}
{{works with|niecza|2012-09-12}}