Ocena gry w snake

0

Witam wszystkich :)

Bardzo prosiłbym o ocenę gry Snake, którego napisałem w Javie i konstruktywną krytykę.
Podaję link do repozytorium gdzie wrzuciłem projekt. Plik z metodą "main" znajduje się w folderze "gameClasses", główną klasą realizującą grę jest klasa "Snake" :)

https://github.com/psooypl/snake

Dziękuję serdecznie i życzę miłego dnia :)

4

Jakby kto z javą miał wspólnego tyle co ja z drogimi samochodami czyli nic, to tak można to zbudować:

$ javac -d build **/**.java
$ java -cp build marcin.gameClasses.App

Namęczyłem się, a wystarczyłoby, żeby była informacja w README, jak to w ogóle zbudować. No ale się przynajmniej czegoś nauczyłem.

for (int i = 1; i < posList.size(); i++) {
            for (int j = 0; j < posList.size(); j++) {
                if (posList.get(i).compSqrPos(posList.get(j)) && i != j) {
                    gameState = GameState.GAME_OFF;
                }
            }
        }

Nie musisz sprawdzać każdego segmentu z każdym. Wystarczy, że sprawdzisz czy głowa w nic nie wali. Tym bardziej, że

  1. nie wychodzisz z pętli jak już znajdziesz dwa segmenty w tej samej pozycji, tylko lecisz dalej ze sprawdzaniem
  2. sprawdzasz tę samą parę elementów po dwa razy, np. i == 1, j == 2 oraz i == 2, j == 1

actualOrt - actual to po angielsku rzeczywisty, prawdziwy. Chodzi ci o "current".

Dalej, cała konstrukcja wydaje mi się chybiona. Jedna klasa Snake, która robi wszystko - przechowuje stan węża, rysuje elementy, pobiera eventy i kręci bączki. Na mój chłopski rozum, to powinno raczej wyglądać tak, że jest klasa Snake, która obsługuje węża, jest klasa Board, która obsługuje rysowanie, jest klasa Game, która przechowuje wynik, uruchamia główną pętlę i spina to wszystko w całość.

Ale ogólnie jeśli programujesz od niedawna, to całkiem spoczko.

0

Wszystkie Twoje uwagi są niezwykle celne i biorę wezmę je sobie do serca :) na dniach postaram się poprawić program i ponownie go wrzucić tym razem jednak w poprawny sposób. Dziękuję za komentarz

1 użytkowników online, w tym zalogowanych: 0, gości: 1