Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Drabinka !
Forum PHP.pl > Forum > PHP
ikssde
Cześć, coś takiego było już na forum, ale autor posta nie uzyskał odpowiedzi więc ponawiam pytanie. Chciałbym napisać skrypt który mi wygeneruje drabinkę turniejową dla nieograniczone ilości zespołów, coś takiego jest np. tutaj http://fake69.tourney.cc/brackets/
Niestety nie mam zielonego pojęcia jak się do tego zabrać, jeśli macie jakieś pomysły proszę o pomoc ! sad.gif
carbolymer
Mógłbyś nieco bardziej sprecyzować prośbę? Np. jakie dane masz na wejściu, a jakie na wyjściu, i co chcesz mieć, tablice w php czy obrazek w jpg?
Kocurro
GD i odrobina oleju.
ikssde
Właśnie tak sie zastanawiałem nad GD. Dane wejściowe to $team = x (liczba zespolow) $teams = array(nazwy zespolow), w pierwszej rundzie wypisuje je sobie w jakiś sposob, natomiast w drugiej rundzie mam juz polowe zespolow z 1 rundy, oczywiście te ktore wygraly.

W zasadzie obojętne mi jest czy to będzie wygenerowane przy pomocy tabelek czy przy pomocy GD, tylko pytanie które prościej zrobić ?

@edit

Jakieś pomysły ? Kocurro może mógłbyś mnie chociaż jakoś nakierować snitch.gif

Odświeżam !

Pomocy sad.gif
Fifi209
To może byś pokazał dane z tych tablic ?
ikssde
W tablicy będę przechowywał nazwy drużyn i pozycję jaką zajmują w drabince, tj. które pole.
Nie sądzę, żeby to miało jakiś wpływ na generowanie owej drabinki, ale proszę bardzo.

  1. <?php
  2. $brackets = array(0 => 'team0', 1 => 'team1', 2 => 'team2', 3 => 'team3' ... itd )
  3. ?>


Położenie czyli {0,1,2,3...} i nazwa zespołu {team0, team1, team2, team3...}

Przykładowa drabinka klik
Dodam jeszcze, że o ile zrobienie drabinki na tabelkach nie jest problemem to te kreseczki oddzielające każdy zespół, taka ścieżka, już są wyzwaniem. Jeśli ktoś ma pomysły, proszę o pomoc.
Fifi209
http://wortal.php.pl/phppl/wortal/artykuly...a/drzewka_w_php

Może coś Ci to pomoże? biggrin.gif
ikssde
Ciężko sad.gif Chodzi mi bardziej jak stworzyć konkretny szkielet drabinki, a nie jak pobierać dane. Na tej stronie co wam podałem jest to zrobione na tabelkach, a kolega wspominał coś o GD, ja sam próbowałem na divach, ale nic z tego.

Mógłbym to zrobić statycznie, ale mam do zrobienia drabinkę dla 8, 16, 32, 64, 128 zespołów i jeszcze do tego "duble elimination", czyli taka drabinka dla przegranych.

Nikt nie pomoże? :/

Proszę o cokolwiek, jakieś wskazówki, rady, naprowadźcie mnie !
erix
No brackets created yet.

Nie podbijaj tematu, przeczytaj posty poprzedników i popróbuj wg ich wskazówek. Gotowce, to nie ten dział.
ikssde
Nie czekam na gotowca tylko na wskazówkę, jeśli uważasz, że powyższe posty są wartościowe, to podziel się ze mną proszę tym co z nich wyniosłeś. Widocznie nie jestem wystarczająco inteligentny. Posty podbijam, bo nie mogę się uporać z problemem, gdybym tego nie zrobił nie zwróciłbym niczyjej uwagi, a problem pozostałby nierozwiązany. Wiem już, że można coś takiego zrobić przy pomocy GD i "oleju", niestety odpowiedź jest taka ogólna, że w dalszym ciągu nie wiem jak się za to zabrać, w końcu do każdego problemu można napisać tak trywialne rozwiązanie, "trochę oleju w głowie i php".

Co do drabinki do której dałem linka, niestety nie działa, bo pod tymi adresami prowadzone są jakieś rozgrywki, tak więc administrator to ciągle zmienia, jednak żeby komuś, skoremu do pomocy, uzmysłowić mój problem, podaje nowy link
erix
Cytat
Posty podbijam, bo nie mogę się uporać z problemem, gdybym tego nie zrobił nie zwróciłbym niczyjej uwagi, a problem pozostałby nierozwiązany.

Podbijanie nie jest mile widziane. Poza tym, jeśli czegoś się nie wie, to się nie pisze - nikt nie zna gotowego skryptu, więc nie odpisuje w Twoim wątku.

Aby samemu to zrobić, dostałeś już wskazówki - GD i myślenie. W GD masz funkcje, co rysować, olej, abyś wiedział, co robić.

Najprościej jest dzielić całą płaszczyznę na pół - półfinał, potem znowu na pół - półfinał, znowu to wszystko na pół - ćwierćfinały. Masz wymiary, teraz tworzysz prostokąty, dodajesz tekst. Zostaje tylko wygenerować linie, ale na upartego - narysujesz sobie w osobnym obrazku prostokąt i go wytniesz; możesz też pomyśleć nad algorytmem, który wyrysuje "kanciastą" ścieżkę od bloku do bloku.
ikssde
W sumie podejście słuszne, ale wydaje mi się, że prościej będzie zrobić to na divach, o ile takie coś w ogóle można nazwać prostym. Dzięki za rzeczową odpowiedź.
dadexix
osobiście bym zrobił obrazki z tymi prostokątami:

Kod
[===] \
        \
         >
        /
[===] /


i tylko łączył je oraz pisał na nich dane

wyliczamy sobie tylko w którym miejscu pisać, potem w którym miejscu dołączać by pasowało, i viola, troszkę dodawania tylko:D
erix
Cytat
ale wydaje mi się, że prościej będzie zrobić to na divach

Owszem, można, ale podejrzewam, że wówczas będzie problem z liniami łączącymi prostokąty. Pozycjonowanie absolutne, to zuo, jak coś. tongue.gif
ikssde
Na tej stronie co Wam pokazywałem tak jest zrobione, ale właśnie problem jest z pozycjonowaniem. W ostateczności zrobię gotowe szablony :/
erix
  1. <div style="top: 510px; width: 3px; left: 444px;" class="tourney-vertical-line"></div>
  2. <div style="top: 710px; width: 3px; left: 444px;" class="tourney-vertical-line"></div>
  3. <div style="top: 610px; width: 3px; left: 447px;" class="tourney-vertical-line"></div>
  4. <div style="top: 510px; height: 201px; left: 447px;" class="tourney-horizontal-line"></div>

Tu też jest absolutne. winksmiley.jpg Ale dałoby się elegancko tabelką (i tu IMHO są dane tabelaryczne). Tylko musiałbyś generować od dołu, aby nadawać odpowiedni colspan/rowspan dla elementów wyżej.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.