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

["Gra"] Czy mógłby ktoś sprawdzić kod?

Object Storage Arubacloud
+5 głosów
308 wizyt
pytanie zadane 17 września 2018 w C i C++ przez Mixxy3k Użytkownik (730 p.)
edycja 18 września 2018 przez Patrycjerz

Dawno dawno temu Mixxy3k bawił się w programowanie aktualnie do tego powrócił. Głównym powodem nawrócenia jest chęć przeżycia w przyszłości mając pracę a nie jakieś 500+. Zatem zabrał się on za coś czego nigdy nie ukończył (i wciąż jest nie dokończone!) a mianowicie własna "prosta" 2D gierka w SFML. Niestety poniosła go fantazja i wpadł pomysł by wszystko było ładnie obiektowo a nawet były systemy wczytywania i zapisu oraz modyfikacja gry bez modyfikacji kodu! Wariat nie?

A teraz poważnie przez fakt że dawno się nie bawiłem w c++ boję się że wyleciało mi trochę za dużo. Nie chcę uwalić całego projektu przy początku. Redycja zawsze doprowadzała mnie do nerwicy i tak oto porzucałem projekt ZAWSZE. Dlatego odzywam się tutaj aby śmiałkowie którzy są w stanie zawitać ku norze abstrakcji i złego ochydnego kodu (a także języka angielskiego) mogli zobaczyć moje wypociny i ładnie mnie skrytykować.

Co jest "zrobione"

  • Prosty menadżer do obsługi kochanej konsoli 
  • Wyszukiwanie i ładowanie plików JSON
  • Ładowanie tekstur i czcionki
  • Pokazywanie okienka z napisem Loading (Wooo te emocje)

Chciało by się rzec tyle i aż tyle Tutaj je Github <3 

QNA

  • Skończysz to kiedyś? Nie wiem ale cel jest tego nie porzucać dlatego piszę tutaj.
  • Ma to komentarze? Jakieś ma ale boję się że za mało.
  • Mogę podbierać kod i robić co zechcę? Jasne ale jak na nim zarobisz to stawiasz mi obiad i 20L coli waniliowej!

1 odpowiedź

+2 głosów
odpowiedź 19 września 2018 przez draghan VIP (106,230 p.)
wybrane 19 września 2018 przez Mixxy3k
 
Najlepsza

Hej. Zajrzałem w Twój kod. Mam kilka uwag. Jedne bardziej pomocne, inne mniej. :)

  • pisze się "manager", nie "menager" :),
  • po co stosujesz dynamiczną alokację dla typu GameState, który jest tylko typem wyliczeniowym? Zupełnie wystarczające byłoby umieszczenie tej zmiennej na stosie - już nie mówiąc o tym, że nigdzie nie dokonujesz dealokacji pamięci dla tej alokacji, czym tworzysz niewielki wyciek pamięci,
  • dlaczego cała magia dzieje się w konstruktorze obiektu Engine? Konstruktor powinien służyć jedynie do skonstruowania obiektu - magia powinna powędrować do jakiejś metody doMagicStuff, którą wywołasz jawnie,
  • do stanów - zamiast enuma - można zrobić prostą klasę State - będziesz mógł umieścić jakiś kod w konstruktorze i destruktorze takiego stanu, co będzie wykonywane automatycznie podczas zmiany stanu na inny (całkiem wygodne); zastosowanie enuma też jest w porządku, aczkolwiek jeśli Ci się projekt rozrośnie, to będziesz na niego przeklinał :),
  • pisze się specification, nie specyfication :),
  • fajnie byłoby rozdzielić logikę od rysowania,
  • kolejny wyciek pamięci przy obiekcie buttons w klasie Menu,
  • jak już masz podział na pliki .h i .cpp, rozdziel deklaracje i definicje,
  • nie trzymaj zakomentowanego starego kodu (JsonMenager.cpp),
  • JsonMenager::pathToString nie powinna być członkiem klasy JsonMenager - bo dlaczego jest? :),
  • zapoznaj się z tzw. "rule of five",
  • znów wyciek pamięci (logs z ConsoleMenager).

Generalnie nie ma wielkiej tragedii. ;) Pracuj dalej, powodzenia!

komentarz 19 września 2018 przez Mixxy3k Użytkownik (730 p.)

Wielkie dzięki za komentarz i poprawę moich anglosaskich błędów (Wincyj Google Translate Mixxy a nie z głowy!)
Aktualnie nie ma co rozdzielać(logika i rysowanie) bo nie ma co rysować. :3 Moja praca jest chaotyczna, dodaję to co jest potrzebne stąd chociażby klasa Menu(Która w zasadzie nie powinna istnieć..., jeszcze). Dzięki za podanie "rule of five" na pewno się przyda.
 

 

komentarz 19 września 2018 przez Mixxy3k Użytkownik (730 p.)
edycja 19 września 2018 przez Mixxy3k

@draghan, Zmieniłem ConsoleManager wedle twoich zaleceń jednak wciąż nie jestem pewien czy wszystko tam jest dobrze. Mógł byś w wolnym czasie spojrzeć i napisać co i jak? 

Kod oczywiście na GitHub 

Podobne pytania

0 głosów
2 odpowiedzi 454 wizyt
0 głosów
2 odpowiedzi 402 wizyt
pytanie zadane 5 stycznia 2017 w C i C++ przez Danthee Początkujący (260 p.)
0 głosów
0 odpowiedzi 248 wizyt
pytanie zadane 19 czerwca 2022 w C i C++ przez hicodyn Początkujący (420 p.)

92,555 zapytań

141,403 odpowiedzi

319,557 komentarzy

61,940 pasjonatów

Motyw:

Akcja Pajacyk

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

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...