Exemple #1
0
 def test_no_move_without_start(self):
     game.join(self.r, 'game', 'max')
     game.join(self.r, 'game', 'jenny')
     game.start(self.r, 'game', 'jenny')
     self.assertFalse(game.move(self.r, 'game', 'jenny', 'han'))
     info = game.info(self.r, 'game', 'jenny').next()
     self.assertEquals('camp', info['you']['state'])
Exemple #2
0
 def test_move(self):
     game.join(self.r, 'game', 'max')
     game.join(self.r, 'game', 'jenny')
     game.start(self.r, 'game', 'max')
     game.start(self.r, 'game', 'jenny')
     self.assertTrue(game.move(self.r, 'game', 'jenny', 'han'))
     info = game.info(self.r, 'game', 'jenny').next()
     self.assertEquals([{ 'name': 'jenny',
                          'state': 'moved'},
                        { 'name': 'max',
                          'state': 'undecided'}], info['state']['players'])
     self.assertEquals('han', info['you']['state'])
def run_player(r, k, name, wait_for_n_players, sleeper,
               ai=random_ai, sleep_time=0):
    """
    A self-contained player.  Joins game, plays when it can.
    """

    game.join(r, k, name)

    for info in game.info(r, k, name):
        sleeper.sleep(sleep_time)

        player_state = info['you']['state']
        if player_state == 'joined':
            if len(info['state']['players']) == wait_for_n_players:
                game.start(r, k, name)
            else:
                pass
        elif player_state == 'undecided':
            game.move(r, k, name, ai())
        elif player_state in ['won', 'lost']: # done!
            return True

        sleeper.sleep(sleep_time)