Genereer voetbal tool niet meer dan x aantal wedstrijden thuis

Status
Niet open voor verdere reacties.

infernothebest

Gebruiker
Lid geworden
25 feb 2008
Berichten
76
Beste leden,

Onderstaand script (werkt overigens perfect) is een wedstrijd genereer tool zoals dit wordt gedaan om een voetbal seizoen te genereren. Zodat elk team 1x per half seizoen tegen elkaar speelt en op de helft precies andersom.

Nu is mijn vraag:
Stel ik heb 1 Voetbal club met 3 velden en 6 teams. Hoe kan ik er voor zorgen dat ik nooit meer dan 3 teams tegelijkertijd thuis spelen op 1 dag.


PHP:
<?php


function scheduler($teams,$shuffle=1,$reverse=1){
    if (count($teams)%2 != 0){
        array_push($teams,"");
    }
    if ($shuffle == 1){
        shuffle($teams);
    }
    $away = array_splice($teams,(count($teams)/2));
    $home = $teams;
    for ($i=0; $i < count($home)+count($away)-1; $i++){
        for ($j=0; $j<count($home); $j++){
            if (($i%2 !=0) && ($j%2 ==0)){
                $schedule[$i][$j]["Home"]=$away[$j];
                $schedule[$i][$j]["Away"]=$home[$j];
            } else {
                $schedule[$i][$j]["Home"]=$home[$j];
                $schedule[$i][$j]["Away"]=$away[$j]; 
            }
        }
        if(count($home)+count($away)-1 > 2){
            array_unshift($away,array_shift(array_splice($home,1,1)));
            array_push($home,array_pop($away));
        }
    }
    if ($reverse == 1){
        for ($k=0; $k < count($home)+count($away)-1; $k++){
            for ($j=0; $j<count($home); $j++){
                if (($k%2 !=0) && ($j%2 ==0)){
                    $schedule[$i][$j]["Home"]=$home[$j];
                    $schedule[$i][$j]["Away"]=$away[$j];
                } else {
                    $schedule[$i][$j]["Home"]=$away[$j];
                    $schedule[$i][$j]["Away"]=$home[$j]; 
                }
            }
        if(count($home)+count($away)-1 > 2){
            array_unshift($away,array_shift(array_splice($home,1,1)));
            array_push($home,array_pop($away));
        }
        $i++;
        }
    }
    return $schedule;
}  

$result = mysql_query("SELECT * FROM Team WHERE Divisie_ID='".mysql_real_escape_string(htmlspecialchars($Divisie_NR))."'");
$teams = array();
while($row = mysql_fetch_array( $result )) { 
$members[] = $row['Team_ID']."|".$row['Naam'];
}
// $members = array("name1","name2","name3","name4"); 
$schedule = scheduler($members);



$i = 0; 

foreach($schedule AS $round => $games){
    foreach($games AS $play){
    if (!empty($play["Home"])){//filter 1
     if (!empty($play["Away"])){//filter 2
        echo "<tr>";
        echo "<td>".($round+1)."</td>";

$thuis = explode("|", $play["Home"]);
$uit = explode("|", $play["Away"]);

        echo "<td><input value='".$thuis[0]."' name='Thuis".$i."' hidden>".$thuis[1]."</td>"; 
        echo "<td><input value='".$uit[0]."' name='Uit".$i."' hidden>".$uit[1]."</td>";
echo "<td><input type='text' name='Datum".$i."' class='form-control datepicker'></td>";  
        echo "</tr>";
        $i++;
    }//filter 2
    }//filter 1
    }  
}
?>
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan