Hoi, ik heb een code geschreven, waarin "ingeschreven spelers" uit een database worden gehaald. Stel er zitten 9 spelers in de database, dan moet het aantal spelers worden aangevuld tot 16 om een mooie ladder te krijgen. Ik wil, als er geloot wordt, dat de 9 spelers random uit de database worden gehaald. Dan worden er 7 spelers toegevoegd die de waarde "leeg" krijgen. Deze 16 spelers worden dan in een random volgorde tegen elkaar gezet, zo, dat er niet 2 spelers met de waarde "leeg" tegenover elkaar komen te staan (als dat gebeurt, moet de loting opnieuw geschieden).
Ik heb hiertoe de volgende code geschreven: het gekke is echter, dat het 20% van de keren werkt, en 80% van de keren niet. Dus als ik 'm 5 keer probeer uit te voeren via het web, doet ie het 1 keer wel en 4 keer niet. Volgens mij zit er iets fout met het random gebeuren. Zou iemand de code voor mij door willen kijken (het kan superingewikkeld overkomen)?
code:
Ik heb hiertoe de volgende code geschreven: het gekke is echter, dat het 20% van de keren werkt, en 80% van de keren niet. Dus als ik 'm 5 keer probeer uit te voeren via het web, doet ie het 1 keer wel en 4 keer niet. Volgens mij zit er iets fout met het random gebeuren. Zou iemand de code voor mij door willen kijken (het kan superingewikkeld overkomen)?
code:
PHP:
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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
| <? if ($action == "whattodosubmit" && $whattodo == "loten" && $test_username == "$username" && $test_password == "$password") { mysql_connect("","",""); $query = "SELECT * FROM webdarts_users WHERE geaccepteerd = '1' ORDER BY RAND()"; $result = mysql("needforgaming", $query); $amountofplayers = mysql_num_rows($result); $am = $amountofplayers; if ($am > 256) { print("Er zijn te veel spelers ingeschreven, om het schema van het toernooi te kunnen genereren"); exit; } if ($am > 128) { $am = 256; } elseif ($am > 64) { $am = 128; } elseif ($am > 32) { $am = 64; } elseif ($am > 16) { $am = 32; } elseif ($am > 8) { $am = 16; } elseif ($am > 4) { $am = 8; } elseif ($am > 2) { $am = 4; } elseif ($am = 2) { $am = 2; } elseif ($am < 2) { print("Er zijn te weinig spelers ingeschreven, om het schema van het toernooi te kunnen genereren"); exit; } $playernumber = 1; $numberofemptyspots = $am - $amountofplayers; $amountofspotsnumbered = 0; $amountofemptyspotsnumbered = 0; $amountofplayersnumbered = 0; $am2 = $am + 1; $rand1 = 1; while ($amountofspotsnumbered < $am) { $randomize = mt_rand($rand1,$am2); if ($randomize <= $numberofemptyspots && $amountofemptyspotsnumbered < $numberofemptyspots) { ${'playernumber'.$playernumber} = "leeg"; $amountofspotsnumbered = $amountofspotsnumbered + 1; $amountofemptyspotsnumbered = $amountofemptyspotsnumbered + 1; $rand1 = $rand1 + 1; } else { if ($amountofplayersnumbered < $amountofplayers) { $row = mysql_fetch_array($result); ${'playernumber'.$playernumber} = $row[Nickname]; $amountofspotsnumbered = $amountofspotsnumbered + 1; $amountofplayersnumbered = $amountofplayersnumbered + 1; $am2 = $am2 - 1; } else { ${'playernumber'.$playernumber} = "leeg"; $amountofspotsnumbered = $amountofspotsnumbered + 1; $amountofemptyspotsnumbered = $amountofemptyspotsnumbered + 1; $rand1 = $rand1 + 1; } } $playernumber = $playernumber + 1; $count = 0; $counter = 0; while ($count < $am) { $counter = $counter + 1; $counter2 = $counter + 1; if (${'playernumber'.$counter} == "leeg" && ${'playernumber'.$counter2} == "leeg") { $playernumber = 1; $amountofspotsnumbered = 0; $amountofemptyspotsnumbered = 0; $amountofplayersnumbered = 0; $counting = 0; $counter = 0; $halfcounter = 0; $am2 = $am + 1; $rand1 = 1; $count = $am + 1; } $counter = $counter + 1; $count = $count + 2; } } $amountofcouplesmade = 0; $amountofcouplestobemade = $am / 2; $couplenumber = 1; $playernumber = 1; while ($amountofcouplesmade < $amountofcouplestobemade) { $player1 = ${'playernumber'.$playernumber}; $playernumber = $playernumber + 1; $player2 = ${'playernumber'.$playernumber}; $playernumber = $playernumber + 1; $query = "insert into webdarts_schema (koppel_nummer,speler_nummer_1,speler_nummer_2) VALUES ('$couplenumber','$player1','$player2')"; $result = mysql("needforgaming",$query); $amountofcouplesmade = $amountofcouplesmade + 1; $couplenumber = $couplenumber + 1; } ?> <b><font size="2" color="1566a2">Loting voltooid</font></b><br> <br> <font size="2" face="Verdana">De loting is succesvol voltooid!</font> <?php } ?> |