Змейка

Рекомендованный уровеньУровень
5+
Длинное змееобразное существо ползает по ограниченному полю, подчиняясь приказам игрока (право, лево, вниз, вверх). И нет никакой возможности остановить его движение. Только бы не коснуться краев поля, иначе гибель! Только бы не укусить себя, иначе… ну вы поняли. На пути у существа попадается еда, от которой оно становится ещё длиннее. От роста ему становиться всё теснее, и теснее, и теснее… Стоп машина! …Вы, вероятно, узнали в описанной выше шуточной драме сценарий знаменитой игры «Змейка». Эта игрушка берёт своё начало в 70-х годах прошлого столетия. Именно тогда она впервые появилась на аркадных автоматах. А в 21-м столетии её популяризатором выступила компания Nokia, которая предустанавливала «Змейку» едва ли не во все свои мобильные телефоны. Между этими двумя вехами были версии для Commodore VIC-20, MS-DOS, ZX Spectrum, Windows, Mac OS… Если вы залезете в Play Маркет или Apple Store, то, скорее всего, найдёте пару десятков вариантов различных «Змеек». Сложно представить себе платформу, на которой не было бы собственного варианта «Змейки». Почему так? Дело в том, что с одной стороны, это интересная игра, которая отлично помогает скоротать время. С другой стороны, «Змейку» достаточно просто создать самостоятельно. Давайте убедимся в этом сами, и напишем собственную версию приключений растущего пресмыкающегося на Java. Мы на JavaRush уже расписали все шаги, которые помогут начинающему игроку справиться с такой задачей без проблем. Вперёд!
Комментарии (121)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий вы должны авторизоваться
echerniy2007@gmail.com0 уровень
7 hours ago
помогите мне создать начить на компе уменя не получаеться.
6 May, 20:08
Змейка, которая понравится не всем https://javarush.ru/projects/apps/112049
MIKK.T7 уровень, Калуга
9 May, 09:50
ахаха орнул
Sergey12 уровень, Ярославль
16 May, 14:59
понравилось)
Maxim Tikhonenkov25 уровень, Москва
23 April, 20:31
Шикарные задачи. Намного интереснее, чем какой нибудь непонятный перебор массива или тп.
Сергей Половых18 уровень, Москва
19 April, 12:33
Люди добрые подскадите, почему проверка игры в IntelliJ IDEA Community Edition выдает мне что Задача не компилируется на сервере!?
21 April, 04:35
А она к идее компилируется? Попробуй запустить в среде на сайте, там тебе покажет, в какой строке ошибка.
Сергей Половых18 уровень, Москва
21 April, 09:11
на сайте все компилируется, уже 16 заданий сделал, а в идее до сих пор выдает ошибку, о которой писал в начале
22 April, 10:27
То есть в идее ни одна задача не компилируется при проверке плагином, так? А в самой идее,если запустить, компилируется?
Сергей Половых18 уровень, Москва
25 April, 17:45
Именно, я сижу с телефона, у меня нет купленного премиума
26 April, 05:09
Для решения задач в разделе игр премиум не требуется. Я запутался в вашем вопросе: вы сидите с телефона, но не компилируется в Идее? Зачем тогда Идея, если с телефона сидите? Можете пробдему сформулировать полностью?
Сергей Половых18 уровень, Москва
26 April, 09:28
в идее при компиляции игры выдает ошибку, в чем причина?
26 April, 11:12
Я думаю, с этим вопросом лучше обратиться в техподдержку, мы по второму кркгк пошли уже..
Артём12 уровень, Москва
15 April, 00:02
В 4 пункте в классе snakeGame мы делаем вот так: apple.draw(this); что здесь означает слово this?
15 April, 03:21
Метод draw класса Snake принимает в качестве параметра объект класса Game. Класс SnakeGame является дочерним, поэтому тоже является Game(полиморфизм), вот, чтобы в качестве параметра передать экземпляр класса(фактически передаётся ссылка на этот класс) Game(самого себя) используется слово this. Для чего это делается: в классе Snake существует метод draw, который должен устанавливать значения и раскрашивать ячейки(рисует яблоко). Но из класса Snake мы мы не можем вызвать его просто так, нам нужен объект типа Game, у которого этот вызов происходит через точку. Конечно, это не единственный выход, но так делать рекомендуется. Это инкапсуляция. Мы вызываем для Apple и для Snake одинаковый метод в главном классе программы, но для них метод работает по разному, в зависимости от того, у какого объекта вызывается метод. Поэтому, чтобы не писать в главном классе реализации для каждого объекта(класса), эти реализации пишутся внутри соответствующего класса. Поэтому каждый класс сам знает, как ему выполнить соответствующую команду. А в главном классе нам не надо придумывать разные названия методов(которые делают одно и то же) для разных объектов(классов). Сравни методы draw у Apple и у Snake.
Сергей20 уровень, Казань
11 April, 17:16
Привет! Как можно попасть к ресурсам игры? Хочу поменять иконки яблок и змею
Дмитрий20 уровень, Одесса
13 April, 15:53
В проекте когда вы рисовали голову змейки, тело змейки и яблоко. Вы указывали UTF-8 Символ в инициализации поля. Просто найдите понравившийся символ головы, скопируйте его код и вставьте в свою игру.
Maxim4 уровень
21 March, 09:40
А прямого доступа к классу Game и остальным пакетам нет, как я понимаю? Чтобы посмотреть как это все устроено.
LuneFox24 уровень, Москва
21 March, 13:19
Как это нету? Зажми ctrl и кликни по классу в IDE.
LuneFox24 уровень, Москва
20 March, 20:24
Ура, доделал! https://javarush.ru/projects/apps/34738 Алхимическая вариация змейки :)
Амиро18 уровень, хабаровск
10 April, 14:35
ничего не понял, но респект за старание!
LuneFox24 уровень, Москва
19 May, 21:26
Задавай вопросы, если есть :) В принципе, я постоянно игру допиливаю.
Алекс Скела9 уровень, Хабаровск
20 March, 02:35
Не отправляет код на проверку, скрин аналогичен с игры сапер, (по ошибке).
Дмитрий10 уровень
11 March, 21:32
А все эти игры пишутся исключительно в среде разработки типа Idea, netbeans? на самом сайте никак? А то не вижу где тут код писать...
Tuti Fruti18 уровень, Москва
13 March, 17:13
Нет, можно писать на сайте, на сайте есть встроенный idea.
Дмитрий10 уровень
13 March, 20:02
Я вот нажимаю на игру а окошко куда обычно писать код содержит это - Перейдите на вкладку Дерево классов Кликните правой кнопкой мыши на директорию, в которой нужно создать класс В открывшемся меню, выберите Создать класс Введите имя класса и нажмите кнопку Создать А писать то не дает... Не догоняю
Tuti Fruti18 уровень, Москва
14 March, 16:12
Где вкладка условие, есть рядом вкладка Древо классов. Нажимаешь на неё и в открытой вкладке создаёшь класс, как написано в условии(это не обязательно для простого использования, но важно для задания). Открывается класс в котором можно писать.
Дмитрий10 уровень
14 March, 17:01
Ааааа теперь вижу, спасибо большое))))
Tuti Fruti18 уровень, Москва
14 March, 19:43
Возле вкладки Условие есть вкладка Древо классов. Нажимаешь на неё, после создаёшь по условию класс и так далее. В открытом классе можно писать.
Дмитрий10 уровень
14 March, 19:45
Буду знать, спасиб)
Богдан Б18 уровень, Киев
17 March, 11:32
На сайте в разделе "Игры", не советую начинать раньше 10 лвл-а.
Дмитрий10 уровень
17 March, 15:23
Да я и не собирался, думал начать тогда когда у меня будет хотя бы какое-то общее понимание о Java) думаю раньше 15-20 уровня не начинать
Alexey Gutorov16 уровень, Нур-Султан
4 April, 17:59
Я как раз на 10-ом. Раньше там делать нечего, это точно)))