mirror of
https://github.com/coding-horror/basic-computer-games.git
synced 2025-12-06 04:41:34 -08:00
114 lines
2.3 KiB
Perl
114 lines
2.3 KiB
Perl
#!/usr/bin/perl
|
|
#
|
|
|
|
my $bank = 0;
|
|
|
|
&main;
|
|
|
|
sub main {
|
|
&print_intro;
|
|
my $continue=5;
|
|
until ($continue != 5) {
|
|
$continue=&game_play;
|
|
&print_bank;
|
|
}
|
|
&final_bank;
|
|
}
|
|
|
|
sub game_play {
|
|
my $point = 0;
|
|
my $continue = 1;
|
|
print "INPUT THE AMOUNT OF YOUR WAGER.\n";
|
|
chomp(my $wager=<STDIN>);
|
|
print "I WILL NOW THROW THE DICE\n";
|
|
until ($continue == 0) {
|
|
my $roll = &roll_dice;
|
|
$continue = &check_value($roll,$wager);
|
|
}
|
|
print "IF YOU WANT TO PLAY AGAIN PRINT 5 IF NOT PRINT 2\n";
|
|
chomp(my $ans=<STDIN>);
|
|
return $ans;
|
|
}
|
|
|
|
sub print_bank {
|
|
if ($bank < 0) {
|
|
print "YOU ARE NOW UNDER \$$bank\n";
|
|
}
|
|
elsif ($bank > 0) {
|
|
print "YOU ARE NOW AHEAD \$$bank\n";
|
|
}
|
|
else {
|
|
print "YOU ARE EVEN AT 0\n";
|
|
}
|
|
}
|
|
|
|
sub final_bank {
|
|
if ($bank < 0) {
|
|
print "TOO BAD, YOU ARE IN THE HOLE. COME AGAIN\n";
|
|
}
|
|
elsif ($bank > 0) {
|
|
print "CONGRATULATIONS---YOU CAME OUT A WINNER. COME AGAIN!\n";
|
|
}
|
|
else {
|
|
print "CONGRATULATIONS---YOU CAME OUT EVEN. NOT BAD FOR AN AMATEUR!\n";
|
|
}
|
|
}
|
|
|
|
sub check_value {
|
|
my $roll = shift;
|
|
my $wager = shift;
|
|
if ($roll == 7 || $roll == 11) {
|
|
print "$roll - NATURAL....A WINNER!!!!\n";
|
|
print "$roll PAYS EVEN MONEY, YOU WIN $wager DOLLARS\n";
|
|
$bank += $wager;
|
|
return 0;
|
|
}
|
|
elsif ($roll == 2 || $roll == 3 || $roll == 12) {
|
|
if ($roll == 2) {
|
|
print "$roll - SNAKE EYES....YOU LOSE.\n";
|
|
print "YOU LOSE $wager DOLLARS.\n";
|
|
}
|
|
else {
|
|
print "$roll - CRAPS...YOU LOSE.\n";
|
|
print "YOU LOSE $wager DOLLARS.\n";
|
|
}
|
|
$bank -= $wager;
|
|
return 0;
|
|
}
|
|
else {
|
|
my $point = $roll;
|
|
print "$point IS THE POINT. I WILL ROLL AGAIN\n";
|
|
until (1==2) {
|
|
$roll = &roll_dice;
|
|
if ($roll == 7) {
|
|
print "$roll YOU LOSE $wager\n";
|
|
$bank -= $wager;
|
|
return 0;
|
|
}
|
|
elsif ($roll == $point) {
|
|
print "$roll - A WINNER..........CONGRATS!!!!!!!!\n";
|
|
my $payout = $wager * 2;
|
|
print "$roll AT 2 TO 1 ODDS PAYS YOU...LET ME SEE...$payout DOLLARS\n";
|
|
$bank += $payout;
|
|
return 0;
|
|
}
|
|
else {
|
|
print "$roll - NO POINT. I WILL ROLL AGAIN\n";
|
|
sleep(1);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
sub roll_dice {
|
|
my $die1 = 1+int rand(6);
|
|
my $die2 = 1+int rand(6);
|
|
return ($die1 + $die2);
|
|
}
|
|
|
|
sub print_intro {
|
|
print ' ' x 33 . "CRAPS\n";
|
|
print ' ' x 15 . "CREATIVE COMPUTING MORRISTOWN, NEW JERSEY\n\n\n";
|
|
print "2,3,12 ARE LOSERS; 4,5,6,8,9,10 ARE POINTS; 7,11 ARE NATURAL WINNERS.\n";
|
|
}
|