Рефакторинг кода

PrescripYedda

Новичок
Пользователь
Авг 13, 2024
1
0
1
Я создал метод, который скорее всего можно хорошенько сократить и сделать его более “питонистым”, но я ещё в этом деле неопытен.
Могли бы вы глянуть своим опытным взглядом и дать пару подсказок?
И ещё, если не затруднит, поправить одно условие, оно закомментировано в коде, 2 дня уже ломаю голову над этим условием, не получается.
вот код:
Python:
def play(self):

        """Start the WarGame."""

        new_players = self.players[:]   # make list copy

        while len(new_players) != 1:    # start loop until one object remains in list

            self.deck.deal(new_players, per_hand=1)  # hand over to each player one card

            m = new_players[0].total

            n = 0

            for player in new_players:

                print(player)

            """Need this condition but it's not work

            for player in new_players:

            # if the all objects in the list are equal, start the loop over

                if new_players.count(player.total) >= len(new_players):

                    self.play()"""

            # find those who need to kill

            for player in new_players:

                if player.total < m:

                    m = player.total

                    n = new_players.index(player)

            # kill'em all

            for player in new_players:

                if m == player.total:

                    n == new_players.index(player)

                    print("R.I.P.:", player.name)

                    new_players.remove(player)

            # clear copy list

            for player in new_players:

                player.clear()

        print("Win!:", player.name)

        # clear list

        for player in self.players:

            player.clear()
 

Форум IT Специалистов