mirror of
https://github.com/coding-horror/basic-computer-games.git
synced 2026-01-05 01:27:42 -08:00
Merge pull request #387 from ersen0/23matches-perl
Add Perl version of 93_23Matches
This commit is contained in:
86
93_23_Matches/perl/23matches.pl
Normal file
86
93_23_Matches/perl/23matches.pl
Normal file
@@ -0,0 +1,86 @@
|
||||
#!/usr/bin/perl
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
|
||||
print ' ' x 31 . "23 MATCHES\n";
|
||||
print ' ' x 15 . "CREATIVE COMPUTING MORRISTOWN, NEW JERSEY\n";
|
||||
print "\n\n\n";
|
||||
|
||||
print " THIS IS A GAME CALLED '23 MATCHES'.\n\n";
|
||||
|
||||
print "WHEN IT IS YOUR TURN, YOU MAY TAKE ONE, TWO, OR THREE\n";
|
||||
print "MATCHES. THE OBJECT OF THE GAME IS NOT TO HAVE TO TAKE\n";
|
||||
print "THE LAST MATCH.\n\n";
|
||||
|
||||
print "LET'S FLIP A COIN TO SEE WHO GOES FIRST.\n";
|
||||
print "IF IT COMES UP HEADS, I WILL WIN THE TOSS.\n\n";
|
||||
|
||||
my $N = 23;
|
||||
my $Q = int( 2 * rand(5) );
|
||||
|
||||
if ( $Q == 1 ) {
|
||||
print "HEADS! I WIN! HA! HA!\n";
|
||||
print "PREPARE TO LOSE, MEATBALL-NOSE!!\n\n";
|
||||
|
||||
print "I TAKE 2 MATCHES\n";
|
||||
$N -= 2;
|
||||
|
||||
print "THE NUMBER OF MATCHES IS NOW $N\n\n";
|
||||
|
||||
print "YOUR TURN -- YOU MAY TAKE 1, 2 OR 3 MATCHES.\n";
|
||||
}
|
||||
else {
|
||||
print "TAILS! YOU GO FIRST.\n\n";
|
||||
}
|
||||
|
||||
print "HOW MANY DO YOU WISH TO REMOVE?\n";
|
||||
|
||||
INPUT:
|
||||
{
|
||||
chomp( my $K = <STDIN> );
|
||||
|
||||
if ( $K > 3 or $K <= 0 ) {
|
||||
print "VERY FUNNY! DUMMY!\n";
|
||||
print "DO YOU WANT TO PLAY OR GOOF AROUND?\n";
|
||||
print "NOW, HOW MANY MATCHES DO YOU WANT?\n";
|
||||
redo INPUT;
|
||||
}
|
||||
|
||||
$N -= $K;
|
||||
|
||||
print "THERE ARE NOW $N MATCHES REMAINING.\n";
|
||||
|
||||
my $Z;
|
||||
|
||||
if ( $N <= 1 ) {
|
||||
print "YOU WON, FLOPPY EARS!\n";
|
||||
print "THINK YOU'RE PRETTY SMART!\n";
|
||||
print "LET'S PLAY AGAIN AND I'LL BLOW YOUR SHOES OFF!!\n";
|
||||
exit;
|
||||
}
|
||||
elsif ( $N > 4 ) {
|
||||
$Z = 4 - $K;
|
||||
}
|
||||
else {
|
||||
$Z = $N - 1;
|
||||
}
|
||||
|
||||
print "MY TURN! I REMOVE $Z MATCHES\n";
|
||||
|
||||
$N -= $Z;
|
||||
|
||||
if ( $N <= 1 ) {
|
||||
print "\nYOU POOR BOOB! YOU TOOK THE LAST MATCH! I GOTCHA!!\n";
|
||||
print "HA! HA! I BEAT YOU!!!\n\n";
|
||||
|
||||
print "GOOD BYE LOSER!\n";
|
||||
}
|
||||
else {
|
||||
print "THE NUMBER OF MATCHES IS NOW $N\n\n";
|
||||
|
||||
print "YOUR TURN -- YOU MAY TAKE 1, 2 OR 3 MATCHES.\n";
|
||||
print "HOW MANY DO YOU WISH TO REMOVE?\n";
|
||||
redo INPUT;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user