labrar
Threadersteller
Dabei seit: 04.04.2006
Ort: -
Alter: 49
Geschlecht:
|
Verfasst Mo 01.04.2013 15:59
Titel Bingokarte generieren |
|
|
Hallo. Ich suche nach einer Lösung für folgendes Problem:
Ich habe auf einer Karte drei Reihen mit jeweils 9 Feldern.
Von diesen 9 Feldern muss ich jetzt 5 Zahlen aus 90 per Reihe platzieren. Und zwar so, dass in jeder Reihe logischerweise dann 4 Felder leer bleiben, in jeder Vertikalen Reihe maximal 2 Felder, minimum 1 Feld besetzt sind.
Kleines Beispiel wie sowas dann aussehen soll:
1|leer| 20|leer| 43|leer| 60|leer| 80
leer| 14|leer| 33| 44| 55|leer| 73|leer
9|leer| 24| 36|leer|leer| 68|leer| 89
Es funktioniert auch alles allerdings umständlich, da ich momentan 7 verschiedene Anordnungen habe und diese via rand auswähle. Ich hätte es aber gerne dynamisch.
Zum besseren Verständis:
Code: |
//Erstmal die schon geholten Zufallszahlen in die drei Arrays packen, die später die drei Reihen bilden.
//Hierbei werden erstmal 9 Zhalen hinterlegt von denen ich dann jeweils 4 herausslice.
//$row1-$row9 sind Arrays mit den Zufallszahlen von 1 - 90. Keine davon kommt zweimal vor und für jedes Array enthält nur 10 Zahlen innerhalb eines Zehnerbereiches. Also $row1 könnt zB. so aussehen 25,21,20,27,29,28,22,23,24,23
// $row2 dann zB so 30,31,32,33,35,34,36,37,39,38 aussehen usw. usw.
$brow1=array($row1[0],$row2[0],$row3[0],$row4[0],$row5[0],$row6[0],$row7[0],$row8[0],$row9[0]);
$brow2=array($row1[1],$row2[1],$row3[1],$row4[1],$row5[1],$row6[1],$row7[1],$row8[1],$row9[1]);
$brow3=array($row1[2],$row2[2],$row3[2],$row4[2],$row5[2],$row6[2],$row7[2],$row8[2],$row9[2]);
sort($brow1); sort($brow2); sort($brow3);
//Hier werden die Kartenmasken generiert. Und genau dafür suche ich nach einer Lösung und komme nicht drauf
$call=rand(1,7);
if($call==1){
array_splice($brow1,7,1); array_splice($brow1,5,1); array_splice($brow1,3,1); array_splice($brow1,1,1);
array_splice($brow2,8,1); array_splice($brow2,6,1); array_splice($brow2,2,1); array_splice($brow2,0,1);
array_splice($brow3,7,1); array_splice($brow3,5,1); array_splice($brow3,4,1); array_splice($brow3,1,1);
}
if($call==2){
array_splice($brow1,8,1); array_splice($brow1,6,1); array_splice($brow1,4,1); array_splice($brow1,1,1);
array_splice($brow2,8,1); array_splice($brow2,7,1); array_splice($brow2,2,1); array_splice($brow2,0,1);
array_splice($brow3,6,1); array_splice($brow3,5,1); array_splice($brow3,3,1); array_splice($brow3,0,1);
}
if($call==3){
array_splice($brow1,5,1); array_splice($brow1,4,1); array_splice($brow1,3,1); array_splice($brow1,1,1);
array_splice($brow2,5,1); array_splice($brow2,3,1); array_splice($brow2,2,1); array_splice($brow2,1,1);
array_splice($brow3,8,1); array_splice($brow3,7,1); array_splice($brow3,6,1); array_splice($brow3,0,1);
}
if($call==4){
array_splice($brow1,5,1); array_splice($brow1,4,1); array_splice($brow1,2,1); array_splice($brow1,1,1);
array_splice($brow2,7,1); array_splice($brow2,5,1); array_splice($brow2,3,1); array_splice($brow2,0,1);
array_splice($brow3,8,1); array_splice($brow3,6,1); array_splice($brow3,2,1); array_splice($brow3,1,1);
}
if($call==5){
array_splice($brow1,7,1); array_splice($brow1,5,1); array_splice($brow1,3,1); array_splice($brow1,1,1);
array_splice($brow2,8,1); array_splice($brow2,6,1); array_splice($brow2,4,1); array_splice($brow2,2,1);
array_splice($brow3,6,1); array_splice($brow3,4,1); array_splice($brow3,2,1); array_splice($brow3,0,1);
}
if($call==6){
array_splice($brow1,7,1); array_splice($brow1,2,1); array_splice($brow1,1,1); array_splice($brow1,0,1);
array_splice($brow2,5,1); array_splice($brow2,3,1); array_splice($brow2,2,1); array_splice($brow2,0,1);
array_splice($brow3,8,1); array_splice($brow3,6,1); array_splice($brow3,4,1); array_splice($brow3,1,1);
}
if($call==7){
array_splice($brow1,7,1); array_splice($brow1,3,1); array_splice($brow1,2,1); array_splice($brow1,1,1);
array_splice($brow2,6,1); array_splice($brow2,4,1); array_splice($brow2,3,1); array_splice($brow2,2,1);
array_splice($brow3,8,1); array_splice($brow3,5,1); array_splice($brow3,4,1); array_splice($brow3,0,1);
}
|
Danke
Zuletzt bearbeitet von labrar am Mo 01.04.2013 16:03, insgesamt 1-mal bearbeitet
|
|