|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
15.11.2013, 15:41 | #1 |
Новичок
Джуниор
Регистрация: 15.11.2013
Сообщений: 2
|
Проверка на самопересечение в "Змейке"
Добрый день! Начал изучать Java, и взялся за написание змейки. По ходу дела возник вопрос как проверить, жива ли змейка. Логично создать два метода: один проверяет не вышла ли она за границы поля, а второй - не съела ли себя. В первом случае, просто проверяю не совпадает ли координата "головы" с границами. В духе
Код:
А вот как быть с проверкой на самопересечение? По идее, нужно сравнить положение головы с положением каждой части змейки. Но ведь частей много и координаты их неизвестны по сути (или я чего-то не понимаю). Змейка после инициализации по сути не рисуется, а стирается. На каждом шаге (если змейка не съела фрукт) голова движется на одну часть, а хвост стирается на одну часть. А в памяти хранится положение только головы. Змейка задается через обычный список (он громоздкий, поэтому скинул его без методов) Код:
Код:
Может нужно задать змейку иначе, не через список? Но если через массив, то размер массива каждый раз увеличивать.. Помогите понять и разобраться. Может ошибка в логике? |
27.11.2013, 06:53 | #2 |
Форумчанин
Регистрация: 25.09.2009
Сообщений: 234
|
Могу предложить два варианта:
1. "Извращенный". Если змейка у тебя отрисовывается где либо, то ты можешь сравнить по цвету ячейки. В том же разделе что и проверка границы, только сверху еще одна проверка на цвет. 2. Перейти к варианту сохранения всей змейки. Для хранения всей змейки можно использовать ArrayList<Dimension>. Тогда не будет проблем с проверками. |
23.02.2014, 17:41 | #3 |
Регистрация: 22.02.2014
Сообщений: 3
|
В дополнение к сказанному, могу предложить такое: сделать массив, размером в количество ячеек. Дальше сравнивать значение первого элемента - головы с остальными (например, пройтись циклом от третьего элемента(во вторую вы никогда не врежетесь) до последнего элемента змеи). Хотя, проверка на цвет, как по мне, удобнее.
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Постоянно слетает галочка "автоматически" в "Параметры Excel", "Формулы", "Вычисления в книге" | Alexsandrr | Microsoft Office Excel | 4 | 19.10.2013 14:22 |
Создать класс "Фигура", от него наследованием создать 3 класса ("треугольник", "четырехугольник", "окружность") | funnyy | Помощь студентам | 3 | 17.10.2012 17:40 |
Вывести название соответствующей карты вида "шестерка бубен", "дама червей","туз треф" и т.п. | воваава | Помощь студентам | 3 | 01.12.2011 12:50 |
при вводе на листе "магазин"- код товара появлялось "описание" товара из "склада" с "продажной ценой" | aleksei78 | Microsoft Office Excel | 13 | 25.08.2009 12:04 |
Подскажите с управлением в "Змейке". | spamer | Мультимедиа в Delphi | 7 | 31.12.2008 12:18 |