Форум программистов, компьютерный форум, киберфорум
Python
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.52/29: Рейтинг темы: голосов - 29, средняя оценка - 4.52
1 / 1 / 0
Регистрация: 31.03.2018
Сообщений: 4
1

Морской бой на python

31.03.2018, 18:55. Показов 5768. Ответов 2

Author24 — интернет-сервис помощи студентам
Морской бой
Ваш друг любит играть в морской бой на нескольких «досках» сразу, но ленится каждый раз придумывать новое поле. Он попросил вас сделать программу, которая будет расставлять корабли. Однако друг не до конца доверяет компьютеру, поэтому вы договорились о такой схеме: он рисует одно поле, а вы на основе этого поля делаете еще семь других полей (так что в итоге их получается восемь).

Эти поля вы делаете, комбинируя до трех действий: отражение поля по горизонтали, отражение поля по вертикали и транспонирование поля. Транспонирование — это операция, в ходе которой строки и столбцы меняются местами. Можно сказать, что это отражение поля относительно диагонали, проведённой из верхнего левого угла. Все поля – квадратные.

Вам не обязательно писать целых восемь функций, чтобы получить все поля. Достаточно написать три функции для отражений/транспонирования и скомбинировать их правильным образом. Каждая функция, выполняющая переворот, должна принимать одно поле и возвращать другое. Не испортите случайно оригинальное поле, ведь тогда вам будет сложно уследить за тем, какие поля уже были, какие ещё нет.

Поле проще всего представить как список списков, в котором расставлены либо пробелы, либо точки (или нолики и единички, или любая другая пара символов).

Не забудьте написать функции вывода поля на экран, ведь на этих полях еще играть.

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

Пример:
Исходное поле (4x4):
xxx.
....
x.xx
x...
Итоговые поля:

(исходное поле)
xxx.
....
x.xx
x...

(горизонтальное отражение)
.xxx
....
xx.x
...x

(вертикальное отражение)
x...
x.xx
....
xxx.

(транспонирование)
x.xx
x...
x.x.
..x.

(отражение вдоль горизонтали и вертикали одновременно)
...x
xx.x
....
.xxx

(горизонтальное отражение, затем транспонирование
или
транспонирование, затем вертикальное отражение)
..x.
x.x.
x...
x.xx

(вертикальное отражение, затем транспонирование
или
транспонирование, затем горизонтальное отражение)
xx.x
...x
.x.x
.x..

(транспонирование, затем два отражения
или
два отражения, затем транспонирование)
.x..
.x.x
...x
xx.x
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
31.03.2018, 18:55
Ответы с готовыми решениями:

Морской бой
У меня программа должна когда взрываеться весь корабль обрисовывать его "*" подскажите как это...

Морской бой
Дима любит играть в морской бой. К сожалению, он очень рассеян и постоянно неправильно отмечает на...

Морской бой
Ваш друг любит играть в морской бой на нескольких «досках» сразу, но ленится каждый раз придумывать...

Морской бой
Напишите программу, подготавливающую поле для игры в Морской бой. Море будем обозначать нулями,...

Морской бой
Дима любит играть в морской бой. К сожалению, он очень рассеян и постоянно неправильно отмечает на...

2
0 / 0 / 0
Регистрация: 30.03.2018
Сообщений: 6
31.03.2018, 21:36 2
В чём проблема тупо вывести на экран?
0
1 / 1 / 0
Регистрация: 31.03.2018
Сообщений: 4
31.03.2018, 21:40  [ТС] 3
Могут вводиться разные поля.
0
31.03.2018, 21:40
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
31.03.2018, 21:40
Помогаю со студенческими работами здесь

Морской бой
Дима любит играть в морской бой. К сожалению, он очень рассеян и постоянно неправильно отмечает на...

Морской бой
Эмилия собралась объяснить Максу задачу по алгебре и даже нарисовала числовую прямую. Чтобы...

Морской бой
Помогите решить задачу, Морской Бой, вот условия: Ваш друг любит играть в морской бой на...

Морской бой
Добавить второго игрока - компьютер, который будет делать ход после игрока. Исходный код: from...

Морской бой
Входные данные: В первой строке дается размер поля для морского боя: натуральные числа n и m через...

Морской бой
В файле задано поле размером 10*10. Пустое поле кодируется точкой, а поле, представляющее часть...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru