Thread Bingokarten erstellen
(11 answers)
Opened by frankes at 2010-09-27 22:19
Noch ein Tipp:
Mit shuffle() aus ![]() Und bei der Erzeugung des Keys würde ich die einzelnen Begriffe sicherheitshalber durch ein Zeichen trennen, das garantiert in keinem der Begriffe vorkommt, z.B. '|' oder ' '. Hier mein Code: Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 use List::Util qw(shuffle); my @begriffe = qw(eins zwei drei vier fuenf sechs sieben acht neun zehn); my $anzahlKaertchen = 200; my %karten = (); # Hash mit den erzeugten Karten while (keys(%karten) < $anzahlKaertchen) { # Liste mit 6 zufällig ausgewählten Begriffen anlegen my @karte = (shuffle(@begriffe))[0..5]; # eindeutigen Hash-Key für die ausgewählte Kombination erzeugen my $key = join('|',sort @karte); # falls es die Kombination noch nicht gab, # wird die Karte im Hash gespeichert unless ($karten{$key}) { $karten{$key} = \@karte; print int(keys %karten) ,". Karte : ",join(" · ",@karte),"\n"; } } EDIT: Noch was - die Anzahl der gewünschten Kärtchen sollte deutlich kleiner als die Zahl möglicher Kombinationen sein, sonst wird die while-Schleife ineffizient. Last edited: 2010-09-29 00:50:11 +0200 (CEST) |