Patrick Andrieu: Auf zum Wettbüro!

Beitrag lesen

Re!

Solele, letzten Denkfehler ausgebügelt. Ich hatte vergessen, dass nach der ersten Elfmeterschießen-Runde nur noch »paarweise« (also je ein Spieler von jeder Mannschaft, immer ein anderer) antreten, so dass der Punktestand dann nur noch um max. ein Punkt erhöht wird.

Alles zusammen ergibt sich jetzt folgenden Code, den unsere Experten sicher noch performanter machen können:

my ($krautsr, $tuerksr, $krautsv, $tuerksv); # Für Speichern vom Stand reg. Zeit  
                                             # und Stand Verl. bei jeweiliger Gleichheit  
  
# dass eine Mannschaft mehr als vier Tore erzielt, halte ich für unwahrscheinlich  
sub em_halbfinale {  
  my ($krauts, $tuerks) = map { $_ = int rand(4) } 0..1;  
  if ($krauts == $tuerks) { verlaengerung ($krauts,$tuerks); }  
  else { return "Das Spielt endet nach der regulaeren Spielzeit mit: ".$krauts.":".$tuerks; }  
}  
# Bei Gleicheit gibt's Verlängerung  
sub verlaengerung {  
  my @reg = ($krautsr, $tuerksr) = @_;  
  # in 30mn Verlängerung mehr als drei Toren zu schießen, ebenso  
  ($krautsv, $tuerksv) = map { $_ + int rand(3) } @reg;  
  if ($krautsv == $tuerksv) { elfmeterschiessen ($krautsv,$tuerksv); }  
  else { return "Das Spielt endet nach Verlaengerung mit: "  
                .$krautsv.":".$tuerksv." (reg. Spielzeit: ".$krautsr.":".$tuerksr.")\n";  }  
}  
# und wenn immer noch Gleichheit gibt's Elfmeterschießen...  
sub elfmeterschiessen {  
  my @ver = @_;  
  my @elf = map { $_ = int rand(5) } 0..1; # maximale Anzahl Treffen bei der Elfmeterschießen-Runde  
  $elf[0]-- if ($elf[0] - $elf[1] > 3); # mehr als drei Tore Differenz bedeutet: schon gewonnen  
  $elf[1]-- if ($elf[1] - $elf[0] > 3); # dito für die anderen  
  my ($score_krauts, $score_tuerks) = map { $ver[$_] + $elf[$_] } 0..1;  
  if ($score_krauts == $score_tuerks) { weiterschiessen ($score_krauts, $score_tuerks); }  
  else { return "Das Spiel endet nach Elfmeterschiessen mit: "  
                .$score_krauts.":".$score_tuerks." (reg. Spielzeit: "  
                .$krautsr.":".$tuerksr.", Verlaengerung: ".$krautsv.":".$tuerksv.")\n"; }  
}  
# und dann wird weitergeschossen, jeweils ein Spieler  
# von jeder Mannschaft, so dass der Score max. um 1 erhöht wird  
sub weiterschiessen {  
  my @weiter = @_;  
  my ($score_krauts, $score_tuerks) = map { $_ + int rand(1.5) } @weiter;  
  # ab hier gibt's u.U. rekursives 11-m-Schießen bis zur Ewigkeit ;)  
  if ($score_krauts == $score_tuerks) { weiterschiessen ($score_krauts, $score_tuerks); }  
  else { return "Das Spiel endet nach Elfmeterschiessen mit: "  
                .$score_krauts.":".$score_tuerks." (reg. Spielzeit: "  
                .$krautsr.":".$tuerksr.", Verlaengerung: ".$krautsv.":".$tuerksv.")\n"; }  
}  
  
my $score = em_halbfinale;

Mein letzter Aufruf ergab: 2:1 für D in der regulären Spielzeit. Dabei bleibe ich :)

Viele Grüße aus Frankfurt/Main,
Patrick

--

_ - jenseits vom delirium - _
[link:hatehtehpehdoppelpunktslashslashwehwehwehpunktatomicminuseggspunktcomslash]
Nichts ist unmöglich? Doch!
Heute schon gegökt?
0 42

Auf zum Wettbüro!

Patrick Andrieu
  • menschelei
  1. 0
    Peter Pan
    1. 0
      Patrick Andrieu
      1. 1
        Kai345
        1. 0
          Beat
          1. 0
            Peter Pan
      2. 0
        Peter Pan
  2. 0
    suit
    1. 0
      Patrick Andrieu
    2. 0
      Struppi
      1. 0
        Patrick Andrieu
        1. 0
          Sven Schrodt
          1. 0
            at
        2. 0
          Auge
  3. 0

    Türkei verliert

    Franzl - man nennt mich Lichtgestalt - Beckenbauer
    • zur info
    1. 0
      suit
    2. 0
      Beat
      1. 0
        Franzl - man nennt mich Lichtgestalt - Beckenbauer
      2. 0
        cygnus
        1. 0
          at
  4. 0

    Tüjrküyie

    Sympatisant
    1. 0
      Peter Pan
      1. 0
        Gargamel
        1. 0

          Korrektur

          Peter Pan
          1. 0

            Korrektur der Korrektur

            Auge
            1. 0
              Peter Pan
      2. 0
        Sympatisant
        1. 0
          Peter Pan
          1. 0
            Sympatisant
            1. 0
              Peter Pan
    2. 0
      Franzl - man nennt mich Lichtgestalt - Beckenbauer
      1. 0
        Malcolm Beck´s
        1. 0
          Edgar Ehritt
        2. 0
          Sympatisant
          1. 0

            Tüjrküy'ie'

            Malcolm Beck´s
            1. 0
              Sympatisant
        3. 0
          Rütli-Lehrer (muss Aufsätze korrigieren!)
        4. 0
          at
  5. 0
    Patrick Andrieu
    • perl
    1. 0
      Patrick Andrieu
    2. 0
      Patrick Andrieu
      1. 0
        Patrick Andrieu