|
7 / 7 / 0
Регистрация: 15.02.2018
Сообщений: 56
|
|
Морской бой21.03.2018, 20:23. Показов 29814. Ответов 22
Метки нет (Все метки)
Дима любит играть в морской бой. К сожалению, он очень рассеян и постоянно неправильно отмечает на карте клетки, по которым уже стрелял. Напишите класс, который будет строить за Диму карту.
Класс SeaMap должен иметь следующие методы (sm – экземпляр SeaMap): sm.shoot(row, col, result) — добавить на карту результат выстрела. row — индекс ряда карты. col — индекс вертикальной колонки карты. result — одна из строк “miss” (промах), “hit” (попадание), “sink” (потопление корабля). sm.cell(row, col) Возвращает ‘.’, если в клетке с координатами row, col может находится корабль. Возвращает ‘*’, если в клетку уже стреляли или она находится рядом с потопленным кораблём. Возвращает ‘x’ если в клетке было попадание. Метод cell будет вызываться, только когда все обнаруженные на карте корабли потоплены. То есть, не нужно помечать ‘*’ клетки рядом с кораблём в который попали, но не потопили до конца. Формат ввода Каждый тест представляет собой код, в котором будет использоваться ваш класс. Файл c решением не обязательно называть solution.py, он будет переименован автоматически. Тест запускается с вашим классом, а его вывод сравнивается с правильным решением. Пример 1 Ввод Вывод from solution import SeaMap sm = SeaMap() sm.shoot(2, 0, 'miss') sm.shoot(6, 9, 'miss') for row in range(10): for col in range(10): print(sm.cell(row, col), end='') print() .......... .......... *......... .......... .......... .......... .........* .......... .......... .......... Пример 2 Ввод Вывод from solution import SeaMap sm = SeaMap() sm.shoot(2, 0, 'sink') sm.shoot(6, 9, 'hit') for row in range(10): for col in range(10): print(sm.cell(row, col), end='') print() .......... **........ x*........ **........ .......... .......... .........x .......... .......... .......... Пример 3 Ввод Вывод from solution import SeaMap sm = SeaMap() sm.shoot(0, 0, 'sink') sm.shoot(0, 9, 'sink') sm.shoot(9, 0, 'sink') sm.shoot(9, 9, 'sink') for row in range(10): for col in range(10): print(sm.cell(row, col), end='') print() x*......*x **......** .......... .......... .......... .......... .......... .......... **......** x*......*x
0
|
|
| 21.03.2018, 20:23 | |
|
Ответы с готовыми решениями:
22
Морской бой Морской бой на python Морской бой |
|
Просто Лис
|
||||||
| 22.03.2018, 05:23 | ||||||
0
|
||||||
|
7 / 7 / 0
Регистрация: 15.02.2018
Сообщений: 56
|
|
| 22.03.2018, 16:13 [ТС] | |
|
Чет не пашет
0
|
|
|
1741 / 913 / 480
Регистрация: 05.12.2013
Сообщений: 3,074
|
||||||
| 22.03.2018, 18:23 | ||||||
|
Рыжий Лис, Тут недописал
0
|
||||||
|
7 / 7 / 0
Регистрация: 15.02.2018
Сообщений: 56
|
|
| 22.03.2018, 20:52 [ТС] | |
|
Я запутался. Так как правильно?
0
|
|
|
5230 / 3476 / 1174
Регистрация: 21.03.2016
Сообщений: 8,304
|
||||||
| 23.03.2018, 17:01 | ||||||
.......... .......... *......... .......... .......... .......... .........* .......... .......... .......... .......... **........ x*........ **........ .......... .......... .........x .......... .......... .......... x*......*x **......** .......... .......... .......... .......... .......... .......... **......** x*......*x
1
|
||||||
|
7 / 7 / 0
Регистрация: 15.02.2018
Сообщений: 56
|
|
| 23.03.2018, 17:42 [ТС] | |
|
Вердикт Я.Контест: wrong-answer
ompiling/file solution.py || true stderr: Тест 7 Ресурсы 43ms/5.26Mb Ввод from solution import SeaMap sm = SeaMap() sm.shoot(0, 0, 'hit') sm.shoot(0, 1, 'sink') sm.shoot(9, 8, 'hit') sm.shoot(9, 9, 'sink') sm.shoot(2, 3, 'sink') sm.shoot(5, 6, 'miss') sm.shoot(7, 8, 'miss') sm.shoot(1, 7, 'miss') sm.shoot(1, 7, 'miss') for row in range(10): for col in range(10): print(sm.cell(row, col), end='') print() Вывод программы *x*....... *****..*.. ..*x*..... ..***..... .......... ......*... .......... ........*. ........** ........*x Правильный ответ xx*....... *****..*.. ..*x*..... ..***..... .......... ......*... .......... ........*. .......*** .......*xx Сообщение чекера Line 1 differs: out: >*x*.......< corr: >xx*.......<
0
|
|
|
5230 / 3476 / 1174
Регистрация: 21.03.2016
Сообщений: 8,304
|
||||||
| 23.03.2018, 20:25 | ||||||
|
Taranboy, ну да я перезаписываю рядом стоящие попадания. при одиночных кораблях когда попал и убил это сработало а вот когда ххх подряд то затирает соседние попадания. осталось реализовать проверку соседних клеток на попадания верх и вниз а так же влево вправо и свободные от х заполнить * но что то я завис на этом.
0
|
||||||
|
Просто Лис
|
||||||
| 24.03.2018, 06:07 | ||||||
0
|
||||||
|
5230 / 3476 / 1174
Регистрация: 21.03.2016
Сообщений: 8,304
|
|||||||||||
| 25.03.2018, 13:58 | |||||||||||
|
Рыжий Лис, а как лучше каждый раз создавать словарь заново при вызове метода?
0
|
|||||||||||
|
Просто Лис
|
||||||
| 25.03.2018, 14:04 | ||||||
|
Мой способ ожидаемо медленнее в два раза. Так что константные значения лучше создавать один раз.
0
|
||||||
|
10 / 59 / 21
Регистрация: 12.03.2017
Сообщений: 514
|
|
| 26.03.2018, 08:23 | |
|
Так какой код работает?
0
|
|
|
10 / 59 / 21
Регистрация: 12.03.2017
Сообщений: 514
|
|
| 26.03.2018, 20:01 | |
|
Taranboy нужен полностью правильный код! А не половина кодов! Ему нужен только код!
0
|
|
|
10 / 59 / 21
Регистрация: 12.03.2017
Сообщений: 514
|
|
| 27.03.2018, 17:46 | |
|
Нет
Добавлено через 14 секунд Скинь полностью работающий код!
0
|
|
|
2 / 2 / 0
Регистрация: 14.03.2019
Сообщений: 3
|
||||||
| 14.03.2019, 19:25 | ||||||
2
|
||||||
|
-5 / 10 / 0
Регистрация: 14.03.2019
Сообщений: 52
|
|
| 14.03.2019, 20:01 | |
|
from solution import SeaMap
sm = SeaMap() sm.shoot(2, 0, 'sink') sm.shoot(6, 9, 'hit') for row in range(10): for col in range(10): print(sm.cell(row, col), end='') print() Ожидаемый результат .......... **........ x*........ **........ .......... .......... .........x .......... .......... .......... Вывод .......... .......... *......... .......... .......... .......... .........* .......... .......... .......... Сообщение Line 2 differs: out: >..........< corr: >**........<
0
|
|
|
2 / 2 / 0
Регистрация: 14.03.2019
Сообщений: 3
|
|
| 14.03.2019, 21:42 | |
|
Мне кажется, у них с тестером что-то не так, потому что у меня, когда я сам тестирую, всё как в ответе получается.
0
|
|
| 14.03.2019, 21:42 | |
|
Помогаю со студенческими работами здесь
20
Морской бой Морской бой
Морской бой Морской бой Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
| Опции темы | |
|
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11680&d=1772460536
Одним из. . .
|
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
|
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
|
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
|
|
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога
Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
|
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование
. \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json>
Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом.
# Check if. . .
|
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так:
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347
Основана на STM32F303RBT6.
На борту пять. . .
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|