7 / 7 / 0
Регистрация: 15.02.2018
Сообщений: 56
|
|
1 | |
Морской бой21.03.2018, 20:23. Показов 27114. Ответов 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 | 2 | |||||
0
|
7 / 7 / 0
Регистрация: 15.02.2018
Сообщений: 56
|
|
22.03.2018, 16:13 [ТС] | 3 |
Чет не пашет
0
|
1291 / 908 / 479
Регистрация: 05.12.2013
Сообщений: 3,073
|
||||||
22.03.2018, 18:23 | 4 | |||||
Рыжий Лис, Тут недописал
0
|
7 / 7 / 0
Регистрация: 15.02.2018
Сообщений: 56
|
|
22.03.2018, 20:52 [ТС] | 6 |
Я запутался. Так как правильно?
0
|
4937 / 3290 / 1140
Регистрация: 21.03.2016
Сообщений: 8,071
|
||||||
23.03.2018, 17:01 | 7 | |||||
.......... .......... *......... .......... .......... .......... .........* .......... .......... .......... .......... **........ x*........ **........ .......... .......... .........x .......... .......... .......... x*......*x **......** .......... .......... .......... .......... .......... .......... **......** x*......*x
1
|
7 / 7 / 0
Регистрация: 15.02.2018
Сообщений: 56
|
|
23.03.2018, 17:42 [ТС] | 8 |
Вердикт Я.Контест: 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
|
4937 / 3290 / 1140
Регистрация: 21.03.2016
Сообщений: 8,071
|
||||||
23.03.2018, 20:25 | 9 | |||||
Taranboy, ну да я перезаписываю рядом стоящие попадания. при одиночных кораблях когда попал и убил это сработало а вот когда ххх подряд то затирает соседние попадания. осталось реализовать проверку соседних клеток на попадания верх и вниз а так же влево вправо и свободные от х заполнить * но что то я завис на этом.
0
|
Просто Лис
|
||||||
24.03.2018, 06:07 | 10 | |||||
0
|
4937 / 3290 / 1140
Регистрация: 21.03.2016
Сообщений: 8,071
|
|||||||||||
25.03.2018, 13:58 | 11 | ||||||||||
Рыжий Лис, а как лучше каждый раз создавать словарь заново при вызове метода?
0
|
Просто Лис
|
||||||
25.03.2018, 14:04 | 12 | |||||
Мой способ ожидаемо медленнее в два раза. Так что константные значения лучше создавать один раз.
0
|
10 / 59 / 21
Регистрация: 12.03.2017
Сообщений: 514
|
|
26.03.2018, 08:23 | 13 |
Так какой код работает?
0
|
10 / 59 / 21
Регистрация: 12.03.2017
Сообщений: 514
|
|
26.03.2018, 20:01 | 15 |
Taranboy нужен полностью правильный код! А не половина кодов! Ему нужен только код!
0
|
10 / 59 / 21
Регистрация: 12.03.2017
Сообщений: 514
|
|
27.03.2018, 17:46 | 17 |
Нет
Добавлено через 14 секунд Скинь полностью работающий код!
0
|
2 / 2 / 0
Регистрация: 14.03.2019
Сообщений: 3
|
||||||
14.03.2019, 19:25 | 18 | |||||
2
|
-6 / 9 / 0
Регистрация: 14.03.2019
Сообщений: 52
|
|
14.03.2019, 20:01 | 19 |
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 | 20 |
Мне кажется, у них с тестером что-то не так, потому что у меня, когда я сам тестирую, всё как в ответе получается.
0
|
14.03.2019, 21:42 | |
14.03.2019, 21:42 | |
Помогаю со студенческими работами здесь
20
Морской бой Морской бой Морской бой Морской бой Морской бой Морской бой Морской бой Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |