diff --git a/61_Math_Dice/perl/mathdice.pl b/61_Math_Dice/perl/mathdice.pl new file mode 100644 index 00000000..f5a92459 --- /dev/null +++ b/61_Math_Dice/perl/mathdice.pl @@ -0,0 +1,121 @@ +#!/usr/bin/perl + +use strict; +use warnings; + +&main; + +# Main subroutine + +sub main { + &print_intro; + while (1==1) { + &game_play; #function that actually plays the game + } +} + +sub game_play { + my $num = 0; + my $sum = 0; + my $tries = 0; + until ($num == 2) { # there are 2 dice rolls so we do it until the num equals 2 + $num++; + my $roll = 1+int rand(6); # getting a random number between 1 and 6 + &print_dice($roll); # function call to print out the dice + $sum = $sum + $roll; # keeping track of the summary + #print "Sum: $sum Roll: $roll\n"; + if ($num == 1) { + print " +\n"; # if its the first roll then print an addition sign + } + if ($num == 2) { + print " =\n"; # if its the second roll print the equals sign and wait for an answer + my $answer = ; + chomp($answer); + if ($answer == 0) { + die "You input '0', Thanks for playing!\n"; + } + elsif ($answer == $sum) { + print "RIGHT!\nTHE DICE ROLL AGAIN\n"; + } + else { # code execution if they don't get the right answer + print "NO,COUNT THE SPOTS AND GIVE ANOTHER ANSWER\n"; + $answer = ; + chomp($answer); + if ($answer == $sum){ + print "RIGHT!\nTHE DICE ROLL AGAIN\n"; + } + else { + print "N0, THE ANSWER IS $sum\n"; + } + + } + } + } +} + +sub print_dice { + my $roll = shift; + print " -----\n"; + if ($roll == 1) { + &print_blank; + &print_one_mid; + &print_blank; + } + if ($roll == 2) { + &print_one_left; + &print_blank; + &print_one_right; + } + if ($roll == 3) { + &print_one_left; + &print_one_mid; + &print_one_right; + } + if ($roll == 4) { + &print_two; + &print_blank; + &print_two; + } + if ($roll == 5) { + &print_two; + &print_one_mid; + &print_two; + } + if ($roll == 6) { + &print_two; + &print_two; + &print_two; + } + print " -----\n"; +} + +sub print_one_left { + print "I * I\n"; +} + +sub print_one_mid { + print "I * I\n"; +} + +sub print_one_right { + print "I * I\n"; +} + +sub print_two { + print "I * * I\n"; +} + +sub print_blank { + print "I I\n"; +} + +sub print_intro { + my $spaces = " "x31; + print "$spaces MATH DICE\n"; + $spaces = " "x15; + print "$spaces CREATIVE COMPUTING MORRISTOWN, NEW JERSEY\n"; + print "THIS PROGRAM GENERATES SUCCESSIVE PICTURES OF TWO DICE.\n"; + print "WHEN TWO DICE AND AN EQUAL SIGN FOLLOWED BY A QUESTION\n"; + print "MARK HAVE BEEN PRINTED, TYPE YOUR ANSWER AND THE RETURN KEY.\n"; + print "TO CONCLUDE THE LESSON, TYPE '0' AS YOUR ANSWER.\n\n\n"; +}