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

[SFML/C++]Snake-ocena kodu

Aruba Cloud VPS - 50% taniej przez 3 miesiące!
+1 głos
768 wizyt
pytanie zadane 1 maja 2016 w C i C++ przez Curiosity Nowicjusz (130 p.)

Witam, chciałbym pokazać wam prostego Snake. Jest to moja pierwsza gra, więc proszę o ocenę kodu. 

Link do Githuba:https://github.com/Curriosityy/Snake

Link do gry:https://drive.google.com/folderview?id=0B18n3GJaCdzyOWVDQVliY2JBZ1k&usp=sharing

2 odpowiedzi

+3 głosów
odpowiedź 1 maja 2016 przez adrian17 Mentor (350,860 p.)
  • czemu wszystko jest publiczne?
  • GameInfo powinno być namespacem.
  • apple Apple;

    czemu takie odwrotne nazewnictwo? Czemu to w ogóle jest w klasie, jak jest używane tylko w jednym miejscu? To samo z "snakePart part;". To samo z "counter".

  • std::vector<apple>::const_iterator appleIterator;

    Po co to? To samo z "snakePartIterator;"

  • Jeśli destruktor jest pusty, to nie ma sensu go definiować,

  • propablyDirection 

    Dlaczego "propably"? (i literówka)

  • snake::changeDirection(int a)

    Skoro masz enum z kierunkiem, to możesz go tu użyć. No i "a" to słaba nazwa na zmienną.

  • "snakeSize" jest niepotrzebny, bo snakePartArray zna swój rozmiar.

  • GameState *gameState;

    Mogło być referencją.

komentarz 1 maja 2016 przez Curiosity Nowicjusz (130 p.)

1

std::vector<apple>::const_iterator appleIterator;

było mi potrzebne żeby użyć erase(), na jednym z tutoriali widziałem takie rozwiązanie do usuwania danych ze środka vektora.

Puste destruktory sam Visual Studio mi tworzył to ich nie usuwałem, bo może się przydadzą ;d.

Nie wiedziałem jak inaczej nazwać ten enum.

komentarz 1 maja 2016 przez adrian17 Mentor (350,860 p.)

było mi potrzebne żeby użyć erase(),

OK, ale czemu go zdefiniowałeś w klasie, a nie w funkcji?

Nie wiedziałem jak inaczej nazwać ten enum.

...Direction? Skąd w ogóle to "probably"?

+1 głos
odpowiedź 1 maja 2016 przez niezalogowany

Hmm, dziwnie znajomy kod (a raczej jego szkielet i konstrukcja).

Kilka uwag:

  • nazewnictwo klas: konwencja zakłada że nazwy klas rozpoczynają się z dużej litery, a więc: SnakePart, Game, Engine, ... .
  • brak konsekwencji w nazewnictwie: jak wspomniałem powyżej większość klas ma nazwy rozpoczynające się z małych liter (podobnie nazwy plików), ale część rozpoczyna się z dużych, a więc: GameInfo, GameState; dotyczy się to także nazewnictwa obiektów: czasami rozpoczynają się małych liter, czasami z wielkich
  • puste konstrukcje (niby masz obsługę błędu, ale  w if'ie w linii 8 game.cpp nic nie robisz w razie błędu)
  • linia 17 game.cpp powinna być przeniesiona poza główną pętlę, limit fps wystarczy ustawić tylko raz

To tyle jeżeli chodzi o rzeczy, które jakoś rzuciły mi się w oczy (przydałaby się dokładna analiza)

komentarz 1 maja 2016 przez Curiosity Nowicjusz (130 p.)
komentarz 1 maja 2016 przez niezalogowany
Tia, a ja raczej już nie polecam z niego korzystać

Podobne pytania

+2 głosów
1 odpowiedź 886 wizyt
pytanie zadane 2 czerwca 2016 w C i C++ przez Pixel040 Gaduła (3,100 p.)
+1 głos
1 odpowiedź 766 wizyt
pytanie zadane 18 maja 2016 w Nasze projekty przez sofnir Gaduła (4,690 p.)
+1 głos
3 odpowiedzi 1,219 wizyt
pytanie zadane 30 maja 2016 w C i C++ przez Rolnik Nowicjusz (220 p.)

93,173 zapytań

142,184 odpowiedzi

321,967 komentarzy

62,501 pasjonatów

Advent of Code 2024

Top 15 użytkowników

  1. 1157p. - dia-Chann
  2. 1139p. - Łukasz Piwowar
  3. 1131p. - CC PL
  4. 1126p. - Łukasz Eckert
  5. 1118p. - Tomasz Bielak
  6. 1104p. - Michal Drewniak
  7. 1083p. - Marcin Putra
  8. 1078p. - rucin93
  9. 1071p. - rafalszastok
  10. 1054p. - Adrian Wieprzkowicz
  11. 1047p. - Piotr Aleksandrowicz
  12. 1037p. - Michał Telesz
  13. 1005p. - ssynowiec
  14. 992p. - Dominik Łempicki (kapitan)
  15. 968p. - Anonim 3619784
Szczegóły i pełne wyniki

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

Wprowadzenie do ITsec, tom 1 Wprowadzenie do ITsec, tom 2

Można już zamawiać dwa tomy książek o ITsec pt. "Wprowadzenie do bezpieczeństwa IT" - mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy aż 15% zniżki! Dziękujemy ekipie Sekuraka za fajny rabat dla naszej Społeczności!

...