Форум сайта python.su
Приветствую гуру форума,
Я новичок, Интересует как можно написать программу которая подсчитает количество кораблей на поле “морского боя”.
Отредактировано art1390 (Фев. 11, 2017 16:17:50)
Прикреплённый файлы: 1.jpeg (91,9 KБ)
Офлайн
это мягко говоря зависит от реализации … всего
Офлайн
JOHN_16Поподробнее…
это мягко говоря зависит от реализации … всего
Офлайн
art1390Распишите подробно ваш вопрос, а то он звучит примерно так:
Поподробнее…
Офлайн
Создаешь переменную-счетчик а, которая будет считать кол-во кораблей, создаешь двумерный массив 10х10,заполняешь его 0/1 где 0-пустая клетка, 1-клетка, где расположена часть коробля, потом с начала по конец массива ищешь первую попавшуюся клетку со значением 1. Пересматриваешь все оружщие ее клетки(кроме диагональных),когда находится еденица, переходишь на нее, присваивая старой значение нуля, и так до тех пор пока корабль не законится; а+=1. Начинаешь алгоритм заново.
По моему скромному мнению в программе будет не более 2-3 циклов
Можно еще регулркой воспользваться, но если знаешь, конечно, как.
ps
все это лишь идея создания кода, скорее всего есть путь написать его проще
Отредактировано recidivist (Фев. 12, 2017 21:35:17)
Офлайн
recidivist
Создаешь переменную-счетчик а, которая будет считать кол-во кораблей, создаешь двумерный массив 10х10,заполняешь его 0/1 где 0-пустая клетка, 1-клетка, где расположена часть коробля, потом с начала по конец массива ищешь первую попавшуюся клетку со значением 1. Пересматриваешь все оружщие ее клетки(кроме диагональных),когда находится еденица, переходишь на нее, присваивая старой значение нуля, и так до тех пор пока корабль не законится; а+=1. Начинаешь алгоритм заново.По моему скромному мнению в программе будет не более 2-3 цикловМожно еще регулркой воспользваться, но если знаешь, конечно, как.psвсе это лишь идея создания кода, скорее всего есть путь написать его проще
Офлайн
Ну если тебе не лень, то наверно можно. Код в принципе легкий
Прикреплённый файлы: image.jpg (64,4 KБ)
Офлайн
А корабли на поле обязательно все нужно разместить?
Если да, то просто
print(10)
Отредактировано recidivist (Фев. 12, 2017 22:44:11)
Офлайн