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'])
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)