Пример #1
0
 def join_game_message(self, message):
     """Someone wants to join a game."""
     player, game_number = message['player'], message['game_number']
     game = self.game_for_player(player)
     if not game:
         game = self.game_numbered(game_number)
         if game:
             try:
                 gametools.add_player_named(game, player)
                 self.send_to_frontends('joined_game', player=player, 
                                        game=game)
                 self.send_games_list_to_frontends()
                 self.log.debug('%s joined game %d.', player, game['number'])
             except gametools.GameAlreadyStartedError:
                 error = 'Cannot join started game'
                 detail = ("Game %d has already started, so you cannot "
                           "join." % game['number'])
                 self.send_error(player, error, detail)
         else:
             error = 'No such game'
             detail = ("There is no game numbered %r. Please select "
                       "another." % message['game_number'])
             self.send_error(player, error, detail)
     else:
         error = 'Already in game'
         detail = ("You are already in a game and cannot join another until "
                   "it is done or you have left.")
         self.send_error(player, error, detail)
Пример #2
0
 def test_grows_hotel(self):
     game = gametools.new_game()
     gametools.add_player_named(game, "champ")
     gametools.start_game(game)
     blank_board(game)
     hydra = gametools.hotel_named(game, "hydra")
     hydra["tiles"] = ["6A", "6B", "7B"]
     for tile in ["5A"]:
         self.assertTrue(gametools.grows_hotel(game, tile), tile)
     for tile in ["1C", "5C", "8E"]:
         self.assertFalse(gametools.grows_hotel(game, tile), tile)
Пример #3
0
 def setUp(self):
     self.game = gametools.new_game()
     gametools.add_player_named(self.game, "testlady")
     gametools.add_player_named(self.game, "testgirl")
     gametools.start_game(self.game)
     self.player, self.other_player = self.game["players"]
     self.player["rack"][0] = "1B"
     blank_board(self.game)
     self.game["tilebag"] = ["9F"]
     self.america = gametools.hotel_named(self.game, "america")
     self.america["tiles"] = ["1A", "2A"]
     self.hydra = gametools.hotel_named(self.game, "hydra")
     self.hydra["tiles"] = ["1C", "1D", "1E"]
Пример #4
0
 def start_game_message(self, message):
     """Someone's starting a new game."""
     player = message['player']
     game = self.game_for_player(player)
     if game:
         error = 'Already in game'
         detail = ('Please leave your current game before '
                   'starting a new one.')
         self.send_error(player, error, detail)
     else:
         game = gametools.new_game(self.next_game_number())
         gametools.add_player_named(game, player)
         self.games_list.append(game)
         self.send_to_frontends('started_game', player=player, game=game)
         self.send_games_list_to_frontends()
         self.log.debug('Game %d started by %s.', game['number'], player)
Пример #5
0
 def setUp(self):
     self.game = gametools.new_game()
     gametools.add_player_named(self.game, "testwomanican")
     gametools.add_player_named(self.game, "testmanican")
     gametools.add_player_named(self.game, "testvetica")
     self.starting_tiles = gametools.start_game(self.game)
     self.player = gametools.active_player(self.game)
     for hotel in self.game["hotels"]:
         setattr(self, hotel["name"], hotel)
Пример #6
0
 def test_remove_player_from_finished_game(self):
     gametools.add_player_named(self.game, "testwomanican")
     gametools.start_game(self.game)
     self.game["ended"] = True
     gametools.remove_player_named(self.game, "testwomanican")
     self.assertFalse(self.game["players"])
Пример #7
0
 def test_remove_player_from_started_game(self):
     gametools.add_player_named(self.game, "testwomanican")
     gametools.start_game(self.game)
     with self.assertRaises(gametools.GameAlreadyStartedError):
         gametools.remove_player_named(self.game, "testwomanican")
Пример #8
0
 def test_add_player_to_started_game(self):
     gametools.add_player_named(self.game, "chumpwoman")
     gametools.start_game(self.game)
     with self.assertRaises(gametools.GameAlreadyStartedError):
         gametools.add_player_named(self.game, "chumpman")
Пример #9
0
 def test_remove_player_from_unstarted_game(self):
     gametools.add_player_named(self.game, "testmanican")
     gametools.add_player_named(self.game, "testvetica")
     gametools.remove_player_named(self.game, "testmanican")
     self.assertEqual(len(self.game["players"]), 1, self.game)
     self.assertEqual(self.game["players"][0]["name"], "testvetica")
Пример #10
0
 def test_add_player_to_unstarted_game(self):
     gametools.add_player_named(self.game, "testmanican")
     self.assertEqual(len(self.game["players"]), 1, self.game)
     gametools.add_player_named(self.game, "testvetica")
     self.assertEqual(len(self.game["players"]), 2, self.game)