Beste,
Door m'n schaakvereniging ben ik gevraagd om een website te maken die een toernooi makkelijk indeelt.
Er zijn een aantal eigenschappen van het toernooi:
- Men speelt nooit tegen iemand van z'n eigen vereniging.
- In de 3 rondes speel je nooit tegen dezelfde tegenstander.
- Je bent afwisselend zwart of wit.
De gebruikte functie:
Even wat verklaring: waarom ik twee arrays met spelers ($team1 & $team2) maak; dit is met het oog op later, zodat ik ze makkelijk kan laten wisselen van zwart naar wit en vice versa.
Ik blijf ze dus shuffelen totdat er geen spelers van dezelfde vereniging tegen elkaar spelen.
Bovenstaande werkt en geeft een goede indeling voor de eerste ronde.
Mijn vragen zijn:
Voor ronde twee zou ik opnieuw kunnen shuffelen, maar hoe vind ik dan nog de vorige tegenstander en vergelijk deze met de nieuwe?
Alvast bedankt voor het meedenken.
Met vriendelijke groet,
Nelis
Door m'n schaakvereniging ben ik gevraagd om een website te maken die een toernooi makkelijk indeelt.
Er zijn een aantal eigenschappen van het toernooi:
- Men speelt nooit tegen iemand van z'n eigen vereniging.
- In de 3 rondes speel je nooit tegen dezelfde tegenstander.
- Je bent afwisselend zwart of wit.
PHP:
<?php
$alle_teams = mysqli_query($dbc, "SELECT * FROM `teams` WHERE tid = '".$_GET['tid']."' ORDER by RAND()");
$i = 1;
while ($a = mysqli_fetch_array($alle_teams))
{
$team1[$i] = $a;
if ($b = mysqli_fetch_array($alle_teams))
{
$team2[$i] = $b;
}
$i++;
}
while (IntverenigingCheck($team1,$team2))
{
shuffle($team1);
shuffle($team2);
}
?>
<table id="box-table-a">
<tr><th colspan="2">Voor</td><th colspan="2">Tegen</th></tr>
<tr><th>Naam</th><th>vereniging</th><th>Naam</th><th>vereniging</th></tr>
<?php
foreach ($team1 as $key => $value)
{
echo '<tr><td>'.$team1[$key]['naam'].'</td><td>'.$team1[$key]['vereniging'].'</td><td>'.$team2[$key]['naam'].'</td><td>'.$team2[$key]['vereniging'].'</td></tr>';
}
echo '</table>';
De gebruikte functie:
PHP:
function IntverenigingCheck($team1,$team2) {
foreach($team1 as $key => $value)
{
if ($team1[$key]['vereniging'] == $team2[$key]['vereniging'])
{
return true;
}
}
}
Even wat verklaring: waarom ik twee arrays met spelers ($team1 & $team2) maak; dit is met het oog op later, zodat ik ze makkelijk kan laten wisselen van zwart naar wit en vice versa.
Ik blijf ze dus shuffelen totdat er geen spelers van dezelfde vereniging tegen elkaar spelen.
Bovenstaande werkt en geeft een goede indeling voor de eerste ronde.
Mijn vragen zijn:
- Doe ik dit zo handig, of kan ik efficiënter het zelfde resultaat bereiken?
- Hoe nu verder? Ik zie niet helemaal in hoe ik kan checken dat men in de tweede ronde niet dezelfde tegenstander tegenkomt...
Voor ronde twee zou ik opnieuw kunnen shuffelen, maar hoe vind ik dan nog de vorige tegenstander en vergelijk deze met de nieuwe?
Alvast bedankt voor het meedenken.
Met vriendelijke groet,
Nelis
Laatst bewerkt: