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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 06.12.2013, 16:16   #1
zhshzh
Новичок
Джуниор
 
Регистрация: 06.12.2013
Сообщений: 1
Восклицание морской бой на два человека (с++)

помогите с заданием пожалуйста!!!!;

Игра «Морской бой»
Общая идея игры.
Каждый игрок расставляет свои корабли на поле 10х10 клеток. Координаты клеток описываются парой чисел – номер столбца и номер строки. Левый верхний угол имеет координаты 0,0.
Количество кораблей:
Один четырёхпалубный (4 клетки)
Два трёхпалубных (3 клетки)
Три двухпалубных (2 клетки)
Четыре однопалубных (1 клетка)
Каждый корабль может располагаться либо по горизонтали, либо по вертикали. Корабли не могут касаться друг друга никакими частями.
В свой ход игрок указывает координаты клетки, по которой он стреляет.
Возможно три исхода стрельбы:
1. Промах если в указанной клетке нет никакого корабля. В этом случае ход передается другому игроку.
2. Ранен если выстрел попадает в корабль, состоящий из нескольких клеток, и при этом после попадания остается хотя бы одна клетка этого корабля, в которую не было попадания. В этом случае право выстрела остаётся у стрелявшего игрока.
3. Убит если игрок попадает в однопалубный корабль, или после попадания в многопалубный корабль все клетки корабля подбиты. Право выстрела остаётся у стрелявшего игрока.
Победителем считается игрок, уничтоживший все корабли противника.
Техническая реализация.
Написанная программа игрока должна иметь имя Client.exe. Она должна быть расположена либо в подпапке 1, либо в подпапке 2 серверной папки. В другой папке соответственно будет находится программа соперника, которая тоже должна иметь имя Client.exe.
Сервер будет сам по очереди запускать программы клиентов. При первом запуске программа игрока должна создать в своей папке файл расположения флота Сraft.txt следующего формата:
0000000000
1001110000
1000000100
0000000000
1001100100
1000000000
0000100000
1000101000
1000100001
1000100000
где 1 показывает наличие сектора корабля, 0 - его отсутствие. Требования к расположению кораблей описаны выше, в случае неправильного расположения сервер выдаст ошибку.
Внимание: При каждой новой игре должно создаваться новое поле игры, то есть расстановки должны быть псевдослучайны (случайны, но с учетом построенного авторами интеллекта). Не допускается использование заранее созданных расстановок, даже если их количество велико.
При своем ходе игрок считывает информацию из файла result.txt и записывает координаты выстрела в файл command.txt. После выполнения хода программа игрока должна прекратить свою работу. Программа может создавать при работе произвольное количество файлов для сохранения необходимой информации между запусками программы (каждый ход – новый запуск программы). Программа должна выполнить ход и завершить работу не более чем через полсекунды от момента запуска.
Ход игрока записывается в файл command.txt одной строкой, в которой указана пара чисел, разделенных запятой, координаты клетки по которой производится выстрел (не забывайте закрыть файл).
В файле result.txt может быть следующая информация:
• Если результат выстрела Убит, то в файле result.txt одна строка, в которой записано число 2.
• Если результат выстрела Ранен, то в файле result.txt одна строка, в которой записано число 1.
• Если результат выстрела Промах, то файл result.txt будет иметь следующую структуру:
В первой строке будет записано число 0.
Во второй строке будет записано число N (количество ходов, сделанных противником).
В следующих N строках будут записаны координаты выстрелов противника.

Программа может быть написана на любом языке программирования. На соревнование предоставляются как исполняемый файл, так и исходные тексты программы. Указывается язык программирования и версия компилятора.
zhshzh вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Морской бой flutt C++ Builder 10 12.10.2017 16:57
морской бой Alexander1205 Общие вопросы C/C++ 0 21.06.2011 22:24
Морской Бой Liska-Melisska Microsoft Office Excel 9 29.12.2008 00:11
Морской бой flutt Gamedev - cоздание игр: Unity, OpenGL, DirectX 6 17.04.2008 22:40