Exemple #1
0
class Game(object):
    def __init__(self, sense):
        x, y = 1, 3
        self.player = Player(x, y)
        self.screen = Screen(sense)
        self.screen.setWhiteScreen()

        self.state = 0
        self.counter = 0
        self.points = 0

    def initPlayerColor(self):
        self.screen.chooseColorScreen('R', 'G', 'P', 'A')

    def getPlayerColor(self, event):
        if event.action == 'pressed' and event.direction == 'up':
            self.player.setColor('A')
        if event.action == 'pressed' and event.direction == 'down':
            self.player.setColor('G')
        if event.action == 'pressed' and event.direction == 'right':
            self.player.setColor('R')
        if event.action == 'pressed' and event.direction == 'left':
            self.player.setColor('P')
        if not self.player.getColor == ' ':
            self.state = 1

    def initStartScreen(self):
        self.screen.setWhiteScreen()
        x, y = self.player.getXY()
        self.screen.drawPlayer(x, y, self.player.getColor())

    def getState(self):
        return self.state

    def setState(self, state):
        """ Game states
    0. Get player color
    1. Wait for start
    2. Playing
    """
        self.state = state

    def bttnPressed(self, event):
        if event.action == 'pressed' and event.direction == 'right':
            self.player.moveUp()
        if event.action == 'pressed' and event.direction == 'left':
            self.player.moveDown()

    def update(self):
        if self.counter % 4 == 0:
            newCol = np.random.choice(2, 8)
        else:
            newCol = np.zeros((8, ))
        self.screen.update_screen(newCol)
        x, y = self.player.getXY()
        self.screen.drawPlayer(x, y, self.player.getColor())

        if self.gameover():
            return False
        else:
            self.points += 1
            self.counter += 1
            time.sleep(0.2)
            return True

    def getCounter(self):
        return self.counter

    def setCounter(self):
        self.counter += 1

    def gameover(self):
        x, y = self.player.getXY()
        B = [0, 0, 255]
        if self.screen.getScreen()[8 * y + x] == B:
            return True
        else:
            return False

    def gameoverScreen(self):
        self.screen.gameoverScreen(self.points)