Программа игнорирует метод проверки

Прошу прощения за длинный код, но если выложить часть, наверное мало кто что поймёт. Подскажите, пожалуйста, почему игнорируется проверка end_check ? Метод end_check должен проверять не превысил ли self.coord значение 100 и действовать соответственно. Видимо я как-то не правильно применяю его в методе play, потому что если просто вызвать SnakeLadders.end_check() c аргументами 100, >100, то метод отработает корректно.

Спасибо!

from random import randint


class SnakesLadders:
    __log = []
    end_game = ''
    snakechecks = {16: 6, 46: 25, 49: 11, 62: 19, 64: 60, 74: 53, 89: 68, 92: 88, 95: 75, 99: 80}
    ladderchecks = {2: 38, 7: 14, 8: 31, 15: 26, 21: 42, 28: 84, 36: 44, 51: 67, 71: 91, 78: 98, 87: 94}

    def __init__(self, coord):
        self.coord = coord

    @staticmethod
    def snake(coord):  # определяем координаты при попадании на змею.
        snakecoords = SnakesLadders.snakechecks.get(coord)
        return snakecoords

    @staticmethod
    def ladder(coord):  # определяем координаты при попадании на лестницу.
        laddercoords = SnakesLadders.ladderchecks.get(coord)
        return laddercoords

    def statistics(self):  # лог ходов
        return SnakesLadders.__log

    def findname(self):    # нормальные имена игроков
        for k, v in globals().items():
            if self is v:
                return k

    @staticmethod
    def end_check(coord):  # проверяем закончилась ли игра
        if SnakesLadders.end_game == 'Game over':
            return SnakesLadders.end_game
        if coord == 100:
            SnakesLadders.end_game = 'Game over'
            return True
        elif coord > 100:
            coord = 100 - (coord - 100)
            return coord


    def play(self):   # бросание кубика \ передвижение игроков
        self.coord += randint(2, 12)
        type(self).end_check(self.coord)
        if self.coord in SnakesLadders.snakechecks:
            self.coord = type(self).snake(self.coord)
            type(self).end_check(self.coord)
            SnakesLadders.__log.append(f"{self.findname()}-{self.coord}")
        elif self.coord in SnakesLadders.ladderchecks:
            self.coord = type(self).ladder(self.coord)
            type(self).end_check(self.coord)
            SnakesLadders.__log.append(f"{self.findname()}-{self.coord}")
        else:
            type(self).end_check(self.coord)
            SnakesLadders.__log.append(f"{self.findname()}-{self.coord}")


player1 = SnakesLadders(0)
player2 = SnakesLadders(96)

# print(player1.play())
# print(player1.play())
# print(player1.play())
# print(player2.play())
player2.play()
player2.play()
player2.play()

print(player2.statistics())

Ответы (0 шт):