Avatar billede mjense173 Nybegynder
18. november 2004 - 00:18 Der er 5 kommentarer og
2 løsninger

Turneringsscript: Hold_1 mod Hold_2

Hvordan laver man et simpelt script der udskriver alle muligheder for sammensætning af hold, 2 ad gangen.
Ligesom i eks SAS ligaen.

Hvis der er ialt 4 hold, så bliver det til:
Kamp #1: 1-2, 3-4
Kamp #2: 1-3, 2-4
Kamp #3: 1-4, 2-3
Herefter har alle spillet mod alle.
(1-2 betyder hold1 mod hold2 osv.)

Men hvad hvis der er X hold, og X er et lige antal?

Jeg ønsker en php-funktion, som tager X som parameter og udskriver en liste som ligner den ovenfor.
Avatar billede detox Nybegynder
18. november 2004 - 00:27 #1
Måske:

$x = 4;
$nr = 0;
for ($i=1;$i<$x;$i++) {
    for ($j=$i+1;$j<=$x;$j++) {
        $nr++;
        echo "Kamp #$nr: $i - $j<br />";
    }
}
Avatar billede mjense173 Nybegynder
18. november 2004 - 01:05 #2
Ja, den udskriver:
Kamp #1: 1 - 2
Kamp #2: 1 - 3
Kamp #3: 1 - 4
Kamp #4: 2 - 3
Kamp #5: 2 - 4
Kamp #6: 3 - 4

Det er tæt på det jeg skal bruge.
Men ikke helt rigtigt.

Jeg har nok formuleret mig forkert.. Det jeg mener er "Runder"
Altså hvis X=4, så vil der være X/2 = 2 kampe pr. runde.
Hvis X=100 så er der 50 kampe i hver runde osv.

Udskriften skal derfor være noget i retning af:
Runde #1: 1 - 2, 3 - 4
Runde #2: 1 - 3, 2 - 4
Runde #3: 1 - 4, 2 - 3

Der vil derfor altid være X-1 runder, med X/2 kampe pr. runde.
Avatar billede detox Nybegynder
18. november 2004 - 01:18 #3
I see, så er det straks lidt mere kringlet.
Avatar billede mjense173 Nybegynder
22. november 2004 - 18:18 #4
Denne virker: (Fandt den langt om længe)
Men der går aligevel 40 point til detox.

function tournament ($n) {
$nr = $n-1;
for ($r=1;$r<$n;$r++) {
  echo "<b>Runde: $r</b><br>\n";
  for ($i=1;$i<=$n/2;$i++){
  $player1 = (($r+$i-2) % ($n-1)+2);
  if($i==1) $player1 = 1;
  $player2 = (($n-1+$r-$i) % ($n-1)+2);
  echo "&nbsp;$player1 vs. $player2<br>\n";
  }
}
}
Avatar billede mjense173 Nybegynder
25. november 2004 - 00:18 #5
detox?

Vil du lige lægge et svar så du kan få point ;-)
Avatar billede detox Nybegynder
25. november 2004 - 01:47 #6
Det må jeg sige, en fin funktion. Respekt :O)
Avatar billede mjense173 Nybegynder
25. november 2004 - 01:59 #7
Tihi, ja
Den var heller ikke helt nem at finde.
Du kan se den implementeret på min side her:
http://www.jomfrubussen.dk/aarhusit/attention8/oddset/turneringsprogram.php
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester