Design af single-elimination bracket system

Tags:    php

Jeg har problemer med at designe dette.

Det jeg vil, er at sætte noget op systematisk, så alle linjer flugter og så man får et klart overblik over turneringskampene.

Her er et billede med det jeg søger:
http://www.hontour.dk/brack.JPG

Det er noget jeg har lavet selv i html, og brugt lidt MS-paint til sidst for at vise jer hvad jeg vil have.

Men det skal skabes automatisk i php, sikkert med en masse loops og if-sætninger. Dette skal gøres ud fra denne ene variabel.

$players = Antal tilmeldte f.eks. 16

Men jeg kan så sige at $players kun kan være 2, 4, 8, 16, 32, 64 osv. Derfor kan man også finde frem til antal runder i turneringen ved at tælle hvor mange gange man skal halvere '$players*2' indtil $players==2

En turnering med 8 players: 3runder
En turnering med 16 players: 4runder
En turnering med 32 players: 5runder

Den skal sætte noget grafik (hvad som helst, bare der er systematik og orden) op til hver enkelt kamp der skal spilles, uanset antal players.

Jeg har selv lavet så de rigtigere spillere går videre til næste runde hvis han/hun vinder. Men jeg kan bare ikke få de forskellige "bokse" til at komme i en overskuelig rækkefølge.

Har du noget lignende script liggende, gode råd, eller så meget fritid at du faktisk kan skrive koden for mig. Så vil jeg blive meget glad hvis du gad at dele det med mig :)

Til dem der ikke ved hvad single-elimination turnering er:

F.eks. 8 spillere

runde 1 spilles der 4 kampe.

De 8 spillere bliver reduceret til 4... osv
(Vind eller forsvind)



6 svar postet i denne tråd vises herunder
2 indlæg har modtaget i alt 2 karma
Sorter efter stemmer Sorter efter dato
Hvis du nu laver en <table> til at proppe det i. Du skal så have $players*2+1 rækker. Der skal være dobbelt så mange fordi der skal være mellemrum mellem dem for at vinderen kan ligge i midten af dem, men en kolonne til højre og plus 1 fordi vinderen skal ligge i midten. Dertil skal der være log_2($players)+1 kolonner, fordi hver gang der går en runde bliver antallet af spillere halveret. Nu har du så hvor stor tabellen skal være bestemt ud fra hvor mange spillere du har. Indtil videre er der ingen if sætninger. Men så kan du vel selv indsætte det data der skal bruges i hver box



Jeg har ellers fået lavet en klasse til dette, men skidt pyt, så har jeg den til senere brug, jeg er heller ikke færdig med den.. :)



Jeg kan godt lave det til dig..

Men jeg har bare lidt travlt disse dage..



Lyder rigtig godt :)

Jeg prøver selv at lave noget hele tiden, men min hjerne kan ikke lige løse dette synes jeg :)

Tror snart jeg laver et if-statement for hver eneste situation man kan komme ud i, det er bare lidt tøsedreng-agtig hehe :)

Men hvis du en dag får tid, så kontakt mig endelig eller skriv her igen hvis du har lavet noget fornuftigt :D



Skriv en besked med din email til messenger hvis du har sådan en...



Jeg håber ikke for dig at du har brugt tid på dette zynzz :) Jeg har nemlig selv løst problemet nu.

Ellers tak for jeres hjælp



t