| WhiteFang |
16.12.2006 20:04
Сообщение
#1
|
|
Группа: Пользователи Сообщений: 7 Пол: Мужской Реальное имя: Артём Репутация: 0 |
Люди, помогите написать пожалуйста змейку, обычную змейку в графическом режиме; без всяких $, ассемблеров и неизвестных вещей начинающему программисту.
Вот начальный код (только это начало и в нём мнооооооооогое не осуществлено):
Ещё такая проблема: если повторяю через репит вывод newt, то границы поля не отображаются, и не выводится процедура snake. |
![]() ![]() |
| Бродяжник |
22.12.2006 10:29
Сообщение
#2
|
|
Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 206 Пол: Мужской Репутация: 3 |
Начнем пинать с процедуры Grafika.
1. Почто каждый раз перевычислять getmaxy div N? Даже если цомпутер быстрый, заставлять его без конца делать одно и тоже нехорошо. Объявляем глобальную переменную типа CellSize: byte; (делать ее больше не имеет смысла), после установки графического режима один раз вычисляем CellSize := GetMaxY div N; и радостно пользуемся. 2. Почто каждый раз перерисовывать все поле? Перерисовывать в цикле имеет смысл всего несколько клеток: - ту клетку, куда переместилась голова змейки; - если змейка не растет, тогда нужно перерисовать и клетку, откуда "уполз" ее хвост. - если на этом такте появился бонус, то и его тоже надо нарисовать. 3. Поэтому надо следить, где находится змейка. Если бы змейка всегда росла и никогда не двигала свой хвост, было бы достаточно знать координаты ее головы. А так придется создать отдельный массив для хранения координат всех клеток, занятых змейкой. Нечто типа Type TSnakeCell = record При этом координаты "хвоста" находятся в элементе Snake[1], а "голова" по мере роста змейки движется в сторону увеличения индекса. Это значит, что нужна еще некая переменная Head: word; которая будет указывать на положение головы: Snake[Head]. Если змейка растет, то все просто: ... А если не растет, то тоже просто: ... |
WhiteFang змейка 16.12.2006 20:04
WhiteFang uses crt, graph;
const
N = 61;
type
arr = Arra... 21.12.2006 16:09
Гость Скажите, пожалуйсто, как сделать, чтобы змейка сти... 20.03.2014 17:35
WhiteFang Бродяжник, конечно спасибо тебе, но тут использует... 22.12.2006 14:29
Бродяжник Ну хорошо, делаем через матрицу.
Вместо
Type TSna... 22.12.2006 15:13
WhiteFang
Так у мя змейка двигается, но за собой не стирает... 22.12.2006 19:21
Aerophobic uses Sunit,crt,graph;
label te;
var
f:text;
g,m,x:... 1.01.2014 12:45
APAL Мда... через 7 лет тема была реанимирована... 9.01.2014 9:35![]() ![]() |
|
Текстовая версия | 8.12.2025 17:21 |