Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.04.2012, 11:40   #1
Sega_AS
Пользователь
 
Регистрация: 22.02.2012
Сообщений: 15
По умолчанию Задача о муравьях, красящих игровое поле при движении

Есть задачка вродь несложная но туплю
Есть поле не болие 100х100 все белое...
на нем 3 муравья
1 делает клетку красной
2 делат клетку желтой
3 делает клетку зеленой

Если муравей на белой клетке то красит ее в свой цвет и поворачивается на 90 градусов на право и делает шаг вперед

Если не на белой клетке то делает ее белой поварачивается на 90градусов в лево и щшаг вперед....

Если граница то шаг вперед неделает...

есть определеннойе количество ходов которое прописывается вначале вместе с размером поля (х,у,т)

Муравьи ходят поочереди ....

Вход даннык
3 числа ( границы поля и колв ходов )
3 строчки в каждой кординаты муравья вначале

Вывод массив а точнее что будет с полем когда продет Т

0 - белая
1 - крас
2 - желтый
3 - зеленый


______________
Название темы по правилам форума должно адекватно отражать суть решаемой задачи/проблемы.
На первый раз я исправил.
В последующем, темы с подобным названием будут закрываться или удаляться,
а автор такой темы будет получать штрафные баллы.
Учтите это на будущее.

Модератор.

Последний раз редактировалось Serge_Bliznykov; 27.04.2012 в 14:30.
Sega_AS вне форума Ответить с цитированием
Старый 27.04.2012, 13:36   #2
s-andriano
Старожил
 
Аватар для s-andriano
 
Регистрация: 08.04.2012
Сообщений: 3,229
По умолчанию

На входе еще должен быть массив.
Да-да, тот самый, который 100х100. Без него условие неполно.
И еще, у муравье, надеюсь, три координаты: клетка поля и направление, в котором он смотрит/двигается.
s-andriano вне форума Ответить с цитированием
Старый 27.04.2012, 15:02   #3
Sega_AS
Пользователь
 
Регистрация: 22.02.2012
Сообщений: 15
По умолчанию

Можно закрыть уже разобрал ее
Sega_AS вне форума Ответить с цитированием
Старый 27.04.2012, 15:04   #4
Sega_AS
Пользователь
 
Регистрация: 22.02.2012
Сообщений: 15
По умолчанию

Для каждого из муравьев в массиве dest будем хранить его текущее направление:
1 – вверх
2 – вправо
3 – вниз
4 – влево
В массивах lane и row будем для каждого муравья хранить его координаты (номер строки и столбца соответственно)


Код:
for i := 1 to 3 do 
if a[lane[i], row[i]] <> 0 then  begin 
	case (dest[i]) of 
	1: begin dest[i] := 4; a[lane[i], row[i]] := 0; if row[i] <> 1 then dec(row[i]);      end; 
	2: begin dest[i] := 1; a[lane[i], row[i]] := 0; if lane[i] <> 1 then dec(lane[i]); end; 
	3: begin dest[i] := 2; a[lane[i], row[i]] := 0; if row[i] <> m then inc(row[i]); end; 
	4: begin dest[i] := 3; a[lane[i], row[i]] := 0; if lane[i] <> n then inc(lane[i]); end; 
	end; 
end;
Код:
Если муравей сейчас стоит на незакрашенной клетке
for i := 1 to 3 do 
if a[lane[i], row[i]] = 0 then  begin 
	case (dest[i]) of 
	1: begin dest[i] := 2; a[lane[i],row[i]] := i; if row[i] <> m then inc(row[i]); end; 
	2: begin dest[i] := 3; a[lane[i],row[i]] := i; if lane[i] <> n then inc(lane[i]); end; 
	3: begin dest[i] := 4; a[lane[i],row[i]] := i; if row[i] <> 1 then dec(row[i]); end; 
	4: begin dest[i] := 1; a[lane[i],row[i]] := i; if lane[i] <> 1 then dec(lane[i]); end; 
	end;
end;
Sega_AS вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
игровое поле C++ mego4el Помощь студентам 1 15.12.2011 00:56
Игровое поле. Stranger333 Общие вопросы Delphi 3 23.06.2010 14:17
Шестиугольное игровое поле Кронос Gamedev - cоздание игр: Unity, OpenGL, DirectX 3 18.07.2009 12:14
Игровое поле в C++ Builder. Lazio C++ Builder 5 15.07.2009 22:57
Мигание при движении Speeker Общие вопросы Delphi 1 14.02.2007 01:22