@Web__Nikita03

Почему не работает правильный подсчет мин в моей игре?

Пишу Сапера(для себя в учебных целях). Вроде все работает ок, но когда указываю размеры поля 5 на 5, а координаты мины 5 и 5. То рядом стоящие клетки не считают мину за мину. Мой код на repl.itта месть встроенный интепритатор https://repl.it/@nikitaden03/Bomber-game
  • Вопрос задан
  • 129 просмотров
Решения вопроса 1
@The_Revenant
В циклах for, выполняющих обход по полю, при создании объектов range() от длины и ширины не нужно отнимать единицу, т. к. это приводит к тому, что проверка клеток на соседство с "миной" в последней колонке и последнем столбце поля попросту не выполняется.

Исправленный вариант:
for string in range(dlina):
  for stolb in range(shirina):
    if pole[string][stolb] != -1:
      for i in range(-1, 2):
        for b in range(-1, 2):
          new_string = string + i
          new_stolb = stolb +b
          if 0 <= new_string <= dlina - 1 \
                  and 0 <= new_stolb <= shirina - 1 \
                  and pole[new_string][new_stolb] == -1:
            pole[string][stolb] += 1
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы