Autor | Zpráva | ||
---|---|---|---|
gogy27 Profil |
#1 · Zasláno: 29. 3. 2009, 12:24:16
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 |
#2 · Zasláno: 29. 3. 2009, 12:37:09
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 |
#3 · Zasláno: 29. 3. 2009, 12:41:43 · Upravil/a: TomášK
...
|
||
gogy27 Profil |
#4 · Zasláno: 31. 3. 2009, 15:49:56
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 |
#5 · Zasláno: 31. 3. 2009, 18:45:14
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 |
#6 · Zasláno: 1. 4. 2009, 20:15:01
AM_
Dakujem funguje :) |
||
gogy27 Profil |
#7 · Zasláno: 1. 4. 2009, 20:15:48
Cize ak by niekto chcel rozpis zapasov kludne si to zoberte upravte ;)
|
||
czkoudy Profil |
#8 · Zasláno: 3. 4. 2009, 01:15:13 · Upravil/a: czkoudy
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 |
||
Časová prodleva: 14 let
|
0