пишет список ошибок, и чем от моих гениальных корректоровок все становить только хуже. что делать
Здесь я добавила default " как просили
switch (key) {
case UP: {
snake.setDirection(Direction.UP);
break;
}
case DOWN: {
snake.setDirection(Direction.DOWN);
break;
}
case LEFT: {
snake.setDirection(Direction.LEFT);
break;
}
case RIGHT: {
snake.setDirection(Direction.RIGHT);
break;
}
case SPACE: {
if (isGameStopped == true) {
createGame();
}
break;
}
default:{
break;
}
}"
здесь слишком много if, я вот наобьединялала , но лучше не стало
if ((direction == Direction.DOWN && this.direction == Direction.UP)||(direction == Direction.LEFT && this.direction == Direction.RIGHT)) {
return;
}
// if (direction == Direction.LEFT && this.direction == Direction.RIGHT) {
// return;
// }
if ((direction == Direction.UP && this.direction == Direction.DOWN)||(direction == Direction.RIGHT && this.direction == Direction.LEFT)) {
return;
}
// if (direction == Direction.RIGHT && this.direction == Direction.LEFT) {
// return;
// }
if ((this.direction == Direction.LEFT || this.direction == Direction.RIGHT) && snakeParts.get(0).x == snakeParts.get(1).x) {
return;
}
if ((this.direction == Direction.UP && this.direction == Direction.DOWN) && snakeParts.get(0).y == snakeParts.get(1).y) {
return;
}
this.direction = direction;
помогите мне пожалуйста
хотелось бы поиграть в змейку)))
hidden #2297125
18 уровень
Валидатор меня поздравил но она вообще не работает
Решен
Комментарии (24)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
hidden #2297125
23 ноября 2020, 15:05
вот насколько сильно он недоволен
Exception in Application start method
Exception in thread "main" java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at sun.launcher.LauncherHelper$FXHelper.main(LauncherHelper.java:767)
Caused by: java.lang.RuntimeException: Exception in Application start method
at com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:917)
at com.sun.javafx.application.LauncherImpl.lambda$launchApplication$154(LauncherImpl.java:182)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.NullPointerException
at com.javarush.games.snake.SnakeGame.drawScene(SnakeGame.java:33)
at com.javarush.games.snake.SnakeGame.createGame(SnakeGame.java:45)
at com.javarush.games.snake.SnakeGame.initialize(SnakeGame.java:21)
at com.javarush.engine.cell.Game.start(Game.java:68)
at com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$161(LauncherImpl.java:863)
at com.sun.javafx.application.PlatformImpl.lambda$runAndWait$174(PlatformImpl.java:326)
at com.sun.javafx.application.PlatformImpl.lambda$null$172(PlatformImpl.java:295)
at java.security.AccessController.doPrivileged(Native Method)
at com.sun.javafx.application.PlatformImpl.lambda$runLater$173(PlatformImpl.java:294)
at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95)
at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
at com.sun.glass.ui.win.WinApplication.lambda$null$147(WinApplication.java:177)
... 1 more
Process finished with exit code 1
пробовала бороться с этим NullPointerException, не помогло
0
Павел Безумный учёный Expert
23 ноября 2020, 16:30
Судя по "ругательствам" в консоли, исключение возникает при создании новой игры в методе drawScene():
В упомянутом методе выполняется отрисовка двух объектов:
Возможно, одна из переменных не инициализирована, что и приводит к NPE при попытке вызова метода draw().
Если есть возможность, покажите полный код класса SnakeGame. 0
hidden #2297125
23 ноября 2020, 18:08
0
hidden #2297125
23 ноября 2020, 18:08
спасибо!!!
0
Павел Безумный учёный Expert
23 ноября 2020, 18:36
Нужен также остальной код класса SnakeGame (в частности, метод createNewApple() ). Предполагаю, что ошибка может быть там.
Для полноты картины желательно также взглянуть на код класса Snake.
0
hidden #2297125
23 ноября 2020, 18:49
private void createNewApple(){
Apple appleNew = new Apple(getRandomNumber(WIDTH),getRandomNumber(HEIGHT));
apple=appleNew;
}
0
hidden #2297125
23 ноября 2020, 18:54
у меня произошел только что тихий ужас. я выделяла код и оно както все передвинулось и перемешалось , причем самым идиотским способом. что теперь делать. я в ужас
0
Павел Безумный учёный Expert
23 ноября 2020, 19:00полезный
Отмените действия при помощи Ctrl+Z
+1
hidden #2297125
23 ноября 2020, 19:05
0
hidden #2297125
23 ноября 2020, 19:05
0
hidden #2297125
23 ноября 2020, 19:05
0
hidden #2297125
23 ноября 2020, 19:05
Большое большое спасибо!!!!!!!!!
0
Павел Безумный учёный Expert
23 ноября 2020, 20:01
Насколько я могу судить, исключение NullPointerException выбрасывается оттого, что при создании новой игры яблоко не может быть отрисовано, поскольку переменная apple равна null:
SnakeGame
Так может происходить из-за того, что в методе createGame() сначала был вызван метод drawScene(), а метод создания яблока createNewApple() вызывался позже.
Это правильный порядок вызова:
На всякий случай прилагаю полный рабочий код класса 0
hidden #2297125
24 ноября 2020, 12:29
Спасибо вам большое за ваше терпение!
Но, дело в том что все равно не работает ну ни как, я и ваш код и свой и сравнивала. Мне все время пишет "Could not find or load main class SnakeGame"
все красное, пробовала править, Alt+Enter, не работает, может что-то с валидатором или версией?Прямо отчаяние полное. я и свою и вашу и так и сяк. Спасибо 10000 раз что время находите
0
Павел Безумный учёный Expert
24 ноября 2020, 13:01
Измените имя пакета в классе SnakeGame:
0
hidden #2297125
24 ноября 2020, 14:25
Вы меня только не посылайте сильно и далеко. я ковыряюсь, спина занемела уже))) у меня все врем висит ошибка или так или так что не так не пойму, пересмотрела и ваш и свой и чужие коды, у всех так. но все время красным подчеркивает. совершенно этот Snake валидатор не нравиться. Спасибо еще раз.
0
Павел Безумный учёный Expert
24 ноября 2020, 14:48
Посылать я Вас не собираюсь, мне уже самому интересно :)
Второй скриншот правильный - класс Snake должен наследоваться от GameObject.
Сам базовый класс должен выглядеть так:
Если ошибка не уйдёт, наведите курсор на строку, подчёркнутую красным. IDEA покажет подсказку, что именно не нравится компилятору. 0
hidden #2297125
24 ноября 2020, 19:55
Спасибо что не послали))))это первое что он предлагает. Также он предлагает greqt subclass и Unimplement class (это точно не подходит вы сказали), если я наследую от extends Game, а не GameObject, то тогда он морщиться от переменных в super(x, y);
я вот думаю, кто-то из нас погибнет - или он(что вряд ли) или я
0
hidden #2297125
24 ноября 2020, 20:44
докладываю. я нашла вот такое -dublicat class found......javaruch. я его убрала. подчеркивание тут же пропало, ,,,но выдает ошибку, чтобы я не дай бог не расслабилась - Could not find or load main class SnakeGame
а это уже паронормально... потому что с ним все хорошо, он рядом стоит, следующий и нет никаких подчеркиваний, из ошибок вот там в структуре сразу за игрой змейка появился какой-то Games.iml каким то образом созданный 10.11.20,могу удалить но боюсь.
0
Павел Безумный учёный Expert
25 ноября 2020, 00:12решение
Давайте проверим, не отвалился ли игровой движок от проекта.
Откройте меню File и выберите Project Structure... Откроется окно, в котором выберите раздел Modules, затем 8.Games:
Если увидите подобную строку, выделенную красным цветом, выделите её мышью и нажмите кнопку с красным минусом (Remove). После этого нажмите на зелёный плюс (Add), в открывшемся меню выберите JARs or directories. Откроется окно, в котором укажите один из следующих путей:
или
В принципе, можно скопировать движок в обе папки lib (на всякий случай).
Подключённая библиотека движка выглядит так:
После этого нажмите ОК и попробуйте запустить класс SnakeGame.
+2
hidden #2297125
25 ноября 2020, 13:36
Здравствуйте, у меня все вроде как было на месте, не так как на скринах, но я решила, что лучше снести все и переустановить. Теперь все работает.
Хочу сказать очень громко и проникновенно: "Большущее спасибо за колоссальное терпение , за потраченное время!!!!"
0
Павел Безумный учёный Expert
25 ноября 2020, 14:36
Здравствуйте!
Рад, что Вам удалось одолеть эту Змейку :)
Теперь и Вы, и я стали немного сильнее и опытнее.
+2
hidden #2297125
25 ноября 2020, 19:31
Все что нас не ломает, делает нас сильнее)
но у вас колоссальное терпение!!!
+2
Павел Безумный учёный Expert
25 ноября 2020, 19:34
Но ведь и у Вас тоже, раз довели начатое до конца )
Терпение - хороший навык для программиста.
0