• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

BasketBall Manager - projekt PHP

+1 głos
200 wizyt
pytanie zadane 31 sierpnia 2018 w Nasze projekty przez Ergo Proxy Użytkownik (640 p.)
edycja 1 września 2018 przez Ergo Proxy

Witajcie, jako, że jestem fanem koszykówki postanowiłem zrobić sam dla siebie projekt managera koszykówki. Chciałbym tutaj upubliczniać swoje dokonania. ;) Może kogoś to będzie interesowało. Wszystkie opinie a zwłaszcza krytyka (ale konstruktywna) są mile widziane. ;) Jak wersja będzie gotowa do testów alfa, chętnie podrzucę tutaj link. :)

Ogólnie zamysł jest taki:

Jak na razie tworze grę z pomocą frameworka CodeIgniter na bazie MySQL. Początkowo będzie w projekcie możliwość rejestracji/logowania (ależ odkrywcze). Po stworzeniu konta będzie możliwość stworzenia drużyny i  wylosowania 10 zawodników, domyślnie po 2 na każdą pozycję (PG, SG, SF, PF, C). Ich statystyki będą losowane, ofc będzie prawdopodobieństwo, że stworzy Wam zawodnika na pozycji rozgrywającego o ponadprzeciętnym wzroście, ale raczej rzadko takie sytuacje będą miały miejsce :) Druzyna bedzie mogła mieć powiedzmy max 12 zawodników. Będzie mozliwy handel zawodnikami miedzy graczami. Możliwość rozbudowywania hali i pozyskiwania sponsorów (a jeżeli ktoś z Was chce sponsorować ten projekt to zapraszam na priv :)). Dodatkowo możliwość ustawiania taktyki i roli dla każdego gracza (czy np gracz podkoszowy ma bardziej w trumnie siedzieć czy wychodzić na obwód). Będzie możliwość też treningu i stworzenia ligi. Rozgrywanie meczów zostawię na drugą fazę, bo podejrzewam, że będzie z tym multum problemów.

Podsumowując w I etapie. TODO:

  • system rejestracji i logowania
  • stworzenie drużyny i wylosowanie startowych graczy
  • dołączenie do ligi na podstawie czasu rejestracji i umiejętności
  • możliwość rozbudowywania hali i pozyskiwania sponsorów
  • możliwość treningu zawodników i zatrudnianiu trenerów (od rzutów, obrony, itd)
  • możliwość handlu miedzy graczami (chyba na razie będzie to mozliwość tylko jak kupo teraz na allegro (licytację dodam w późniejszym etapie)).


Jeżeli ktoś ma jakieś pytania jak jakiś element chcę zrobić to zapraszam do dyskusji, a i niejednokrotnie sam napisze z jakimś pytaniem do Was. ;)

W trakcie tworzenia:

Zrobiłem już:

  • system logowania i rejestracji
  • klasa Player
  • klasa RandomPlayer


Link do repozytorium: Basketball Manager
Pozdrawiam :D

komentarz 31 sierpnia 2018 przez thryndl Nałogowiec (30,470 p.)
Fajny projekt. Mam nadzieje, ze potrafisz robić grafikę albo masz grafika, który ci to zrobi, żeby jakoś to wyglądało i miało ręce i nogi. Całkiem spoko gra może wyjść. Powodzenia!
komentarz 31 sierpnia 2018 przez Ergo Proxy Użytkownik (640 p.)
Niestety nie jestem zbyt dobry w grafice :P A i nie mam nikogo do pomocy. Ale myślę, że jak już po stronie backendu będzie wszystko w miarę działało to postaram się zrobić jakieś grafiki by było to trochę bardziej przyjazne :) A projekt będę rozwijać po pracy, więc też nie przewiduję, że w ciągu tygodnia będzie skończony. ;)

2 odpowiedzi

0 głosów
odpowiedź 2 września 2018 przez Ergo Proxy Użytkownik (640 p.)
Projekt pomału się tworzy.

Dzisiaj nie miałem za dużo czasu na wprowadzanie zmian, ale dodałem widoku utworzenia drużyny, który docelowo wyświetli się tylko wtedy kiedy do danego użytkownika nie będzie przypisana żadna drużyna. ;) Jutro będę wymyślać algorytm do losowania zawodników. ;)
0 głosów
odpowiedź 2 września 2018 przez Ehlert Ekspert (207,390 p.)

No powiem Ci szczerze, że niestety dramat. Widzę to tak:

  1. CI to jakiś staroć. Serio odradzam z choćby zwykłych względów bezpieczeństwa. Może w samym frameworku dziur nie ma, natomiast kod, który tworzysz szybko może to zmienić. 
  2. Czystość kodu na bardzo niskim poziomie. Nie wiadomo co jest co i gdzie. Psr2 płacze. 
  3. Żadnego orma. Jestem w pełni świadom i sam nieraz doświadczyłem że raw query jest niezastąpione. Ale wszędzie?
  4. Po to korzystamy z frameworków żeby nie wołać $_SESSION
  5. href=<?= base_url().'Register' ?>

    Nie wiem co udostępnia CI, ale takie zabiegi, to proszenie się o kłopoty.

  6. Ni ma testów. 

Z plusów to fajnie ze użyłeś wgl czegoś, nawet CI, a nie robiłeś spaghetti w pure php. Polecam Ci zainteresować się jednak czymś nowszym np laravel/symfony. Eksperymentalnie pod api jest React php. Ode mnie yeskoduj dalej

komentarz 3 września 2018 przez CenterPL Pasjonat (19,110 p.)

Wszystko co napisałeś jest chyba współne dla projektów napisanych w CI. O zgrozo u mnie w firmie mamy taki projekt, który jest napisany w CI, utrzymanie go, to istna porażka, a za kazdym razem jak patrzę na kod, najpierw muszę iść się wypłakać zanim cokolwiek zrobię.
 

Ogólnie CI oferuję jedną god klasę i dziwne magiczne funkcje, które podobnie jak w znanym nam wszystkim pewnym fw, można wywołać gdziekolwiek. Ogólnie CI służy do pisania pseudoobiektowo, zdaje się, że nie można stworzyć głęboko struktury katalogowej - masz katalog applications, potem np model i teraz możesz w środku zrobić tylko jeden katalog, nie głębiej. Pomijam już jakieś dziwne ładowanie klas. Ogólnie gdy mówimy o CI to nie ma co wspominać o PSR, solidach, kissach et cetera, bo to inne światy. 

I tak dalej, i tak dalej...

podsumowując - zaoraj to i napisz od nowa, już lepiej w czystym PHP i ogarnij parę komponentów Symfony, a jak nie to całe Symfony, bo Laravel jest tylko troche lepszy od CI wink

komentarz 3 września 2018 przez Ergo Proxy Użytkownik (640 p.)
edycja 3 września 2018 przez Ergo Proxy

@Ehlert, cieszę się, że napisałeś :)

1. Myślałem, czy by nie przejść na jakiegoś symfony czy coś, ale nie dlatego, że uważa, by CI był taki beznadziejny. W symfony jeszcze nic nie pisałem :) I skoro mówisz, że to jest duzo lepsze to się przesiądę. 

2. To jakbyś napisał klasy by było czytelnie? 

4. Tu racja, w przyszłości to jak najbardziej zmienię ;)

5. A jakbyś to napisał? :) Dlaczego proszenie się o kłopoty?

6. Nom ni ma niestety. Ale będą ;)

Dzięki za krytyke, ale następnym razem proszę o szersze uzasadnienie, bo nie każdy siedzi w branży X lat i nie wie np dlaczego nie wywoływać np. $_SESSION czystego, albo dlaczego zwykły href jest zły.

PS. Tak szczerze powiem, że jak słyszę, że ktoś na wstępie pisze dramat, to aż odechciewa się kodować :D Ale łapka do góry leci i tak. Dzięki jeszcze raz ;)

komentarz 3 września 2018 przez Ehlert Ekspert (207,390 p.)
2. Zapoznaj się ze standardem psr1 oraz 2. Wszystkie klasy nazywa się tak, aby przedstawiały to co reprezentują ich instancję.

5. Wystarczy że zmienisz w całym projekcie konwencję routingu i masz 200 plików do poprawy. Takie rzeczy powinien realizować framework.

Zadaniem programisty jest wyniesienie problemu na taki poziom abstrakcji, aby nie być zmuszonym do używania isset, session itp. Dlatego korzystamy z frameworków, bibliotek i paczek. W Twoim interesie jest monitorowanie wersji oprogramowania z którego korzystasz, tego jak łatwo będzie migrowac do innej bazy danych/środowiska oraz tego jak łatwo będzie Ci dostosować się do pomysłów biznesu.
komentarz 3 września 2018 przez Ergo Proxy Użytkownik (640 p.)
edycja 3 września 2018 przez Ergo Proxy
2. Ok rozumiem, chociaż wydaje mi się, że nazwy klas jak Player, RandomPlayer, Team są dosyć jednoznaczne i logiczne ;) Specjanie podzieliłem klasę Player na Player i RandomPlayer by jeszcze bardziej rozdzielić odpowiedzialność. Btw na czystości kodu zależy mi najbardziej, dlatego jak coś to chętnie posłucham co jeszcze jest nie tak :)

5. Hmm nie rozumiem. Mam plik menu.php, w którym tworzę menu i ten oto plik dorzucam do każdej strony, gdzie dane menu ma się wyświetlać. Zmieniając routing zmieniam tylko w jednym pliku menu.php ścieżki do danych podstron. Swoją drogą base_url() ustala się w konfguracji, więc nawet nie trzeba ruszać pliku menu.php tylko w konfiguracji zmienic ;) Chyba, że nie rozumiem jeszcze czegoś to proszę o sprostowanie :)

Ogólnie i tak będę ten projekt przerzucać do symfony. W mojej poprzedniej pracy używali tylko CI, stąd tak często po niego sięgam.

Podobne pytania

0 głosów
1 odpowiedź 183 wizyt
pytanie zadane 25 października 2017 w PHP przez auradin Użytkownik (560 p.)
+1 głos
1 odpowiedź 54 wizyt
pytanie zadane 24 lutego w SQL, bazy danych przez Piotrek2713 Użytkownik (880 p.)
0 głosów
2 odpowiedzi 76 wizyt
pytanie zadane 12 sierpnia 2019 w SQL, bazy danych przez Kacperhehe Bywalec (2,850 p.)

87,954 zapytań

136,534 odpowiedzi

304,445 komentarzy

58,319 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Sklep oferujący ćwiczenia JavaScript, PHP, rozmowy rekrutacyjne dla programistów i inne materiały

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...