Autor Zpráva
gogy27
Profil
Stiahol som kod z internetu pre rozlosovanie zapasov :
<?php
include_once ('config.php');
  $vstup = 12;
  
  if ($vstup) {
    $rozpis = GenerujRozpis($vstup);
    echo "<h1>Výpis vzájemných utkání podle kol pro počet týmů roven $vstup</h1>";
    foreach ($rozpis as $kolo=>$zapasy) {
      echo "<h2>Kolo $kolo:</h2>";
      foreach ($zapasy as $dvojice) {
        list($tym1, $tym2) = explode("-", $dvojice);
        echo "<li>tým $tym1 - tým $tym2</li>";
      }
    }
  }
$rozpis2 = GenerujRozpis($vstup);
    echo "<h1>2. KOLO</h1>";
    foreach ($rozpis as $kolo=>$zapasy) {
    $kolo2 = $kolo + 11;
      echo "<h2>Kolo $kolo2:</h2>";
      foreach ($zapasy as $dvojice) {
        list($tym1, $tym2) = explode("-", $dvojice);
        echo "<li>tým $tym2 - tým $tym1</li>";
      }
    }

  function je_liche($cislo) {
    return(bool)($cislo & 1);
  }

  function GenerujRozpis($pocet_tymu) {
    if (je_liche($pocet_tymu))
      $n = $pocet_tymu + 1;
    else
      $n = $pocet_tymu;
      
    $k = $n - 1; // počet kol
    $s = $n / 2; // počet zápasů na kolo
  
    for ($i = 1; $i <= $k; $i++) {
      if (!je_liche($pocet_tymu))
        $zapasy[$i][] = $i . "-" . $n;
      for ($j = 1; $j < $s; $j++) {
        $tym_a = (($n - $j + $i - 2) % $k) + 1;
        $tym_b = (($i + $j - 1) % $k) + 1;
        $zapasy[$i][] = $tym_a . "-" . $tym_b;
      }
    }
    return $zapasy;
  }
?>

A mam tieto 2 problemy:
1. Ako nahradit tym1, tym2, tym3, tym4,..., tym12 svojimi tymami z databazy?
2. Ako spravit aby sa bud skor vykonal $rozpis a az tak $rozpis2 a naopak. Aby nehral prvych 12 kol napr. tym1 stale doma ale aby sa to striedalo.

Dakujem za kazdu radu :)
AM_
Profil
12. a 23. řádek uprav z:
echo "<li>tým $tym1 - tým $tym2</li>";

na:
echo "<li>$mojetymy[$tym1] - tým $mojetymy[$tym2]</li>";

Přičemž si definuješ pole
$mojetymy = array("Mistri", "Borci", "Frajeri"....)

Druhé otázce příliš nerozumím, kód funkce GenerujRozpis není příliš přehledný, asi by jí to chtělo přepsat, pokud to jeden tým hází pořád domů... nebo na jejím výstupu náhodně proházet pořadí v rámci každé dvojice, aby ti jeden tým nezůstával na jedné straně.
TomášK
Profil
...
gogy27
Profil
AM_
Diky s 1. otazkou to uz si robim.
2. otazka :
vo funkcii GenerujRozpis() toto

if (je_liche($pocet_tymu))
$n = $pocet_tymu + 1;
else
$n = $pocet_tymu;

Nemusis pozerat pretoze $n sa bude stale rovnat 12.
Hodnoty $k a $s su myslim jasne.
Za $i sa dosadzuju postupne hodnoty kol.
Hodnote $j ani ja moc nerozumiem.

Proste funguje to vsetko ok, ja len chcem, pretoze by to bolo blbe, aby jedno muzstvo prvych 11 kol nehralo doma a potom vonku, ale aby sa to striedalo. Rozmyslal som nad nejakym prikazom ze ked $i = parnemu cislu, tak tym 1 bude hrat vonku a ak neparnemu tak tym 1 bude domaci. Avsak neviem to nejako zrealizovat, respektive vsunut. Budem rad ak niekto pomoze :)
AM_
Profil
tak řádek
 $zapasy[$i][] = $tym_a . "-" . $tym_b;

změň na něco jako
 $zapasy[$i][] = ($j % 2 == 0) ? $tym_a . "-" . $tym_b : $tym_b . "-" . $tym_a;

popř. si místo $j dej do té podmínky $i, nevím teď, co je lepší, to už si zkus sám co to bude dělat. Ale mám pocit, že tam patří spíš j.
gogy27
Profil
AM_
Dakujem funguje :)
gogy27
Profil
Cize ak by niekto chcel rozpis zapasov kludne si to zoberte upravte ;)
czkoudy
Profil
Tak už jsem na to přišel.

http://uk2.php.net/manual/en/language.types.array.php#79904

Pomohl mi tento příklad na php.net

Vaše odpověď

Mohlo by se hodit

Odkud se sem odkazuje


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: