Каждая из первых 10 строк входного файла содержат по 10 символов и задают изначальную расстановку кораблей компьютера, по которым будет стре...
Условие:
Каждая из первых 10 строк входного файла содержат по 10 символов и задают изначальную расстановку кораблей компьютера, по которым будет стрелять Кирилл. Символы могут быть только двух видов:
«.» – Задаёт пустую клетку (клетку в которой нет ни одного корабля)
«#» – Задаёт клетку, принадлежащую кораблю.
В начальный момент времени все клетки корабл
Решение:
Привет! Я понимаю, что у тебя есть входной файл с расстановкой кораблей компьютера. Чтобы помочь Кириллу стрелять по кораблям, нам нужно проанализировать эту расстановку.
Давай начнем с чтения файла и сохранения расстановки кораблей в удобном формате. Мы можем использовать двумерный массив, где каждый элемент будет представлять клетку на игровом поле. Заполним массив символами из файла: "." для пустой клетки и "#" для клетки с кораблем.
# Чтение файла и сохранение расстановки кораблей в двумерный массив
def read_ships(file_name):
ships = []
with open(file_name, 'r') as file:
for line in file:
row = []
for char in line.strip():
row.append(char)
ships.append(row)
return ships
# Пример использования
file_name = "input.txt" # Замени на имя своего файла
ships = read_ships(file_name)
Теперь, когда у нас есть расстановка кораблей, мы можем помочь Кириллу стрелять по ним. Для этого мы можем использовать координаты клеток, где находятся корабли, и предоставить Кириллу информацию о том, где он уже стрелял.
# Проверка, попал ли выстрел в корабль
def check_shot(ships, row, col):
if ships[row][col] == "#":
return True
else:
return False
# Пример использования
row = 2 # Замени на нужную строку
col = 5 # Замени на нужный столбец
if check_shot(ships, row, col):
print("Попал!")
else:
print("Мимо!")
Таким образом, мы можем использовать функцию check_shot
для проверки каждого выстрела Кирилла. Если функция возвращает True
, значит, Кирилл попал в корабль, иначе - мимо.
Надеюсь, эта информация поможет тебе помочь Кириллу в его игре! Если у тебя возникнут еще вопросы, не стесняйся задавать.