2016-11-22T07:26:15 Ichhalt@spieler enthält einfach nur 24 Elemente (Namen) ...
2016-11-21T07:18:05 IchhaltIch hab n Array @spieler in welchem sich gesichert 24 Elemente befinden.
ich muss nun testen, ob eine Paarung der der Spieler schon stattfand und wenn ja, mir den nächsten Spieler als Gegner holen und wieder erst überprüfen, ob diese Paarung schon gespielt hat.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
#!/usr/bin/perl use warnings; use strict; my @alle_spieler = (1 .. 4); # my @alle_spieler = (1 .. 24); my %schon_gespielt; my $spieler; my $gegner; my $i; my $index; my $laufende_nr = 1; foreach $spieler (@alle_spieler) { # Im Hash %schon_gespielt wird fuer jeden Spieler # ein leeres, anonymes Array angelegt: $schon_gespielt{$spieler} = []; } print "\n"; foreach $spieler (@alle_spieler) { foreach $gegner (@alle_spieler) { if ($gegner == $spieler) { next; } $index = 0; # Das Array des Gegners (das sich im Hash %schon_gespielt befindet) # wird darauf untersucht, ob der Gegner schon gegen den # Spieler gespielt hat: foreach $i (@{$schon_gespielt{$gegner}}) { if ($i == $spieler) { $index = 1; last; } } if ($index == 1) { next; } print "$laufende_nr: Spieler Nr. $spieler gegen Spieler Nr. $gegner.\n"; # Der Gegner des Spielers wird in dem Array des Spielers # (das sich im Hash %schon_gespielt befindet) abgelegt: push($schon_gespielt{$spieler}, $gegner); $laufende_nr++; } } print "\n";
2016-11-23T08:38:44 IchhaltDie bereits gespielten Paarungen werden ja in der DB gespeichert.