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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 25.10.2012, 18:36   #1
dekilo
Новичок
Джуниор
 
Регистрация: 25.10.2012
Сообщений: 2
Восклицание игра xonix

Сможете дать написать часть кода,что бы зацепиться за идею,завтра нужно будет сдавать эту задачу ,а я даже не понял её смысла
(P.S. Пишем подобные задачи каждый месяц,взятых из олимпиадных задач города.)

Задача: Xonix
Имя входного файла: стандартный ввод
Имя выходного файла: стандартный вывод
Ограничение по времени: 10 секунд на 10 ходов
Ограничение по памяти: 256 мегабайт
Первая версия игры Xonix была создана в
1984 году как клон игры Qix, появившейся
ранее на аркадных автоматах.
wikipedia
В этой задаче Вам предстоит сыграть в модификацию игры Xonix для двоих участников.
Игра проводится на поле размера 15  15. У каждого игрока есть «курсор», который он может
на своём ходу переместить в одном из четырёх направлений: вверх, вниз, влево или вправо. При
перемещении курсора клетка, на которую он переместился, присоединяется к территории игрока.
Также к территории игрока присоединяются все клетки, которые окружены его территорией (то
есть такие клетки, из которых нельзя уйти за границу поля, не пройдя через клетку территории
игрока).
Рассмотрим небольшой пример. Будем обозначать территорию первого игрока символом 1,
территорию второго игрока символом 2, курсор первого игрока символом 3, курсор второго игрока
символом 4. Незанятые клетки будем обозначать символом ..
Рассмотрим следующую ситуацию:
1 1 1 1
1 . . .
1 . . 3
1 1 1 1
После того как в этой ситуации первый игрок сделает ход вверх, к его территории добавятся
ещё четыре дополнительные клетки:
1 1 1 1
1 1 1 3
1 1 1 1
1 1 1 1
Но при этом в такой ситуации:
1 . . .
1 . . 3
1 . . 1
1 1 1 1
При ходе первого игрока вверх дополнительные клетки к его территории не присоединятся,
поскольку из них можно дойти до границы поля, не проходя по территории игрока. Поле будет
выглядеть следующим образом:
1 . . 3
1 . . 1
1 . . 1
1 1 1 1
Если после хода игрока на поле появляются клетки, из которых нельзя дойти до границы поля,
не проходя по территории игрока, но можно дойти, если использовать помимо свободных клеток
ещё и территорию соперника, такие клетки не считаются окружёнными.
Естественно, игрок не может делать ход на территорию соперника.
Игра заканчивается либо когда на поле не остаётся свободных клеток (не принадлежащих ни
одному из игроков), либо по прошествии 1000 ходов (по 500 ходов каждого игрока).
Страница 1 из 2
Формат входного файла
Перед каждым ходом Вам будет передано карта: 15 строк по 15 символов в каждой. Каждый
символ обозначает одну клетку поля. Ничейные клетки обозначаются символом ’.’, Ваша
территория обозначается символом 1, территория соперника символом 2, Ваш курсор — символом
3, курсор соперника — 4.
Формат выходного файла
На каждом ходу выведите единственный символ, обозначающий, в какую сторону Вы хотите
сдвинуть свой курсор. Движение влево (уменьшение номера столбца) обозначается символом L,
движение вправо (увеличение номера столбца) — символом R, вверх (уменьшение номера строки) —
символом U, вниз (увеличение номера строки) — D.
Если Ваш ход окажется некорректным (будет вести за границу поля или на территорию
соперника), он будет проигнорирован.
Не забывайте сбрасывать буфер вывода после каждого хода.
Также не забывайте, что Ваша программа не должна завершаться сама по себе, потому после
последнего хода можно например сделать фиктивную операцию чтения.
В примере приведен вывод для одного хода.

Примеры

ввод

3..............
...............
...............
...............
...............
...............
...............
...............
...............
...............
...............
...............
...............
...............
..............4

вывод

D
dekilo вне форума Ответить с цитированием
Старый 27.10.2012, 22:49   #2
dekilo
Новичок
Джуниор
 
Регистрация: 25.10.2012
Сообщений: 2
По умолчанию

Никто тоже не понял что делать?)
dekilo вне форума Ответить с цитированием
Старый 28.10.2012, 10:52   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Если вкратце, то Вам нужно реализовать игру "Xonix" в текстовом режиме для двух игроков. Они ходят по очереди. После каждого хода осуществляется проверка корректности хода и, если он был корректен, выводится изменённое игровое поле (результат хода игрока).
Serge_Bliznykov вне форума Ответить с цитированием
Старый 28.10.2012, 11:13   #4
JIeIIIa
Пользователь
 
Регистрация: 21.12.2011
Сообщений: 54
По умолчанию

stealth(собака)bigmir.net
JIeIIIa вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Xonix Intess Gamedev - cоздание игр: Unity, OpenGL, DirectX 1 02.05.2009 20:03
Исходник игры xonix! Mixonow Фриланс 4 05.05.2008 19:36