LINUX.ORG.RU

Сообщения Guguzjaka

 

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

Добрый день. Нужна помощь опытных “питонистов” :) Я создал метод, код ниже, который скорее всего можно хорошенько сократить и сделать его более “питонистым”, но я ещё в этом деле неопытен. Могли бы вы глянуть своим опытным взглядом и дать пару подсказок? И ещё, если не затруднит, поправить одно условие, оно закомментировано в коде, 2 дня уже ломаю голову над этим условием, не получается. вот код:

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()
Спасибо.

 ,

Guguzjaka
()

RSS подписка на новые темы