Advertisement
Guest User

Untitled

a guest
Dec 5th, 2019
96
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Perl 2.71 KB | None | 0 0
  1. use warnings;
  2. use strict;
  3.  
  4. my $state = "PHASE1";
  5. my $die1 = "";
  6. my $die2 = "";
  7. my $result = "";
  8. my $rollCount = "0";
  9. my $point = "";
  10. my $tries = 10;
  11. my @wins = "";
  12. my @losses = "";
  13. $losses[0] = 0;
  14.  
  15. foreach (0 .. 100) {            #Arrayinitialisierung einfach damit der nicht über einen Wert stolpert der nicht initialisiert ist und dann Warnungen ausspuckt, kann ignoriert werden
  16.     $wins[$_] = 0;
  17. }
  18.  
  19. #print "Wie viele Runden moechtest du spielen?\n";
  20. #$tries = <STDIN>;
  21.  
  22. for (my $i = 0; $i < $tries; $i++){
  23.     while ($state eq "PHASE1") {                                        #Phase 1
  24.         $result = rollDie();
  25.         if ($result == 7 or $result == 11){
  26.             $state = "RESET";
  27.             $rollCount++;
  28.             $wins[$rollCount] = $wins[$rollCount] + 1;                  #Arrayinkrementierung hier einfügen
  29.             print "\nDu hast mit einer $result gewonnen!";              #Gewonnen
  30.             print "Spiele nach dem ersten Wurf gewonnen: $wins[$rollCount]\n";            
  31.         }
  32.         if ($result == 2 or $result == 3 or $result == 12){
  33.             $state = "RESET";
  34.             $losses[$rollCount]++;
  35.             print "\nDu hast mit einer $result verloren!";              #Verloren
  36.         } elsif ($result != 2 && $result != 3 && $result != 12 && $result != 7 && $result != 11) {
  37.             $rollCount++;
  38.             $point = $result;
  39.             $state = "PHASE2";
  40.             #print "Erster Wurf: $result\n";
  41.         }
  42.     }
  43.     while ($state eq "PHASE2"){                                         #Phase 2
  44.         $result = rollDie();
  45.         #print "Zwischenergebnis: $result\n";
  46.         if ($result == $point) {                                        #Gewonnen
  47.             $state = "RESET";
  48.             $wins[$rollCount]++;
  49.             print "\nDu hast deinen vorherigen Wurf nach $rollCount Versuchen wiederholt und damit gewonnen!\nGlueckwunsch!\n";
  50.         }
  51.         if ($result == 7) {                                             #Verloren
  52.             $state = "RESET";
  53.             $losses[$rollCount]++;
  54.             #print "Endergebnis: $result\n";
  55.             #print "Vorgabe: $point\n";
  56.             print "\nDu hast es nicht geschafft die Vorgabe zu wiederholen und verloren, da du nach $rollCount Versuchen eine 7 gewuerfelt hast!\nBetter luck next time!\n";
  57.         } else {
  58.             $rollCount++;
  59.         }
  60.  
  61.     }
  62.     if ($state eq "RESET"){
  63.         $state = "PHASE1";
  64.     }
  65.  
  66. }
  67.  
  68. #for (my $i = 1; $i >= $#wins; $i++) {
  69. #    print "Spiele beim $i. Versuch gewonnen: $wins[$i]\n";
  70. #}
  71.  
  72. sub rollDie {                              
  73.     $die1 = 1 + int (rand(6));
  74.     $die2 = 1 + int (rand(6));
  75.     my $sum = $die1 + $die2;
  76.     return $sum;
  77. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement