Найти - Пользователи
Полная версия: Определить выигрышную диагональ в игре Крестики нолики
Начало » Python для новичков » Определить выигрышную диагональ в игре Крестики нолики
1
aidar4ik
Делаю игру крестики нолики, размер поля от 3*3 до 10*10
Победу по прямой диагонали проверяю так
Прямая диагональ 3*3 будут ячейки
00 / 11 / 22

Нахожу так:
 win = True
        for i in range(self.field.size):
            if self.field.cells[i][i] != player.char:
                win = False
                break
        if win:
            return True

Победа по обратной диагонали будут координаты 02 / 11 / 20 (на рисунке выделено жёлтым цветом)
При размере поля 4 * 4 обратная диагональ будет 03 / 12 / 21 / 30
5 * 5 будет 04 / 13 / 22 / 31 /40

Помогите придумать алгоритм для определения победы по обратной диагонали.
вижу зависимость, все цифры зеркальные, в центре одинаковые.
но, не могу придумать как проверить это в цикле.



была идея использовать range с шагом Range(старт, стоп, шаг)
но, что то не сраслось.
py.user.next
Сделай цикл
  
for i in ...
    for j in ...
aidar4ik
придумал уже, так
Вроде работает)

         win = True
        for i in range(self.field.size):
            if self.field.cells[i][2-i] != player.char:
                win = False
                break
        if win:
            return True
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB