diff --git a/GameState.py b/GameState.py index b463161..52e01a2 100644 --- a/GameState.py +++ b/GameState.py @@ -1,11 +1,13 @@ import logging from lamps.LampGroup import PLAYER_LAMPS from lamps.Lamp import CREDIT +from itertools import cycle class GameState: def __init__(self, players, highscore, specialDisplay, currentPlayerID = 0): CREDIT.activate() - self.players = players + self.players = cycle(players) + self._currentPlayer = cycle.next() self.gameStateID = currentPlayerID self.highscore = highscore self.credits = 3 @@ -15,29 +17,17 @@ class GameState: PLAYER_LAMPS.activateNext() def nextPlayer(self): - if not self.isPlaying: - self.isPlaying = True - nextPlayer = self.players[0].id - else: - nextPlayer = self.players[1].id - self.currentPlayer = nextPlayer + self._currentPlayer = next(self.players) @property def currentPlayer(self): - return self.players[0] + return self._currentPlayer @currentPlayer.setter - def currentPlayer(self, playerId): - if(playerId > len(self.players)): - pass # todo throw error - - logging.info("Set active player to player " + str(playerId)) - - savedPlayer = self.players[0] - self.players[0] = next(filter(lambda x: playerId == x.id, self.players)) - self.players.remove(savedPlayer) - self.players.append(savedPlayer) + def currentPlayer(self, player): + logging.info("Set active player to player " + str(player.id)) + self._currentPlayer = player PLAYER_LAMPS.deactivateCurrent() PLAYER_LAMPS.activateNext()