def test_create_observer_game_state(self):
     game_state = create_basic_game_state()
     actual = StateExporter.create_observer_game_state(game_state)
     expected_level_map = "........................................\n" + \
         ".....WWWWWWW............................\n" + \
         ".....WP    W......WWWWW.................\n" + \
         ".....W     D------DZ  W.................\n" + \
         ".....W     W......W   W.................\n" + \
         ".....WWWWWWW......W   W.................\n" + \
         "..................W   W.................\n" + \
         "..................W   W.................\n" + \
         "..................W   W.................\n" + \
         "..................WWDWW.................\n" + \
         "...WWWWWWWWWWWW.....-...................\n" + \
         "...W          W.....-...................\n" + \
         "...W   K      D------...................\n" + \
         "...W   E      W.........................\n" + \
         "...WWWWWWWWWWWW.........................\n" + \
         "........................................"
     expected = {
         "is_exit_unlocked": False,
         "is_game_over": False,
         "current_turn": "p1",
         "level_count": 1,
         "current_level_number": 0,
         "moves_elapsed": 0,
         "latest_player_message": "",
         "level_map": expected_level_map,
         "exited_players_count": 0,
         "dead_players_count": 0
     }
     self.assertEqual(actual, expected)
 def test_create_adversary_game_state(self):
     game_state = create_basic_game_state()
     actual = StateExporter.create_adversary_game_state(game_state, "a1")
     expected_level_map = "........................................\n" + \
         ".....WWWWWWW............................\n" + \
         ".....WP    W......WWWWW.................\n" + \
         ".....W     D------DZ  W.................\n" + \
         ".....W     W......W   W.................\n" + \
         ".....WWWWWWW......W   W.................\n" + \
         "..................W   W.................\n" + \
         "..................W   W.................\n" + \
         "..................W   W.................\n" + \
         "..................WWDWW.................\n" + \
         "...WWWWWWWWWWWW.....-...................\n" + \
         "...W          W.....-...................\n" + \
         "...W   K      D------...................\n" + \
         "...W   E      W.........................\n" + \
         "...WWWWWWWWWWWW.........................\n" + \
         "........................................"
     actual_level_map = "\n".join(["".join(x) for x in actual["level_map"]])
     self.assertEqual(actual_level_map, expected_level_map)
     self.assertEqual(actual["type"], "adversary-update")
     self.assertEqual(actual["available_moves"], [(3, 19), (3, 20),
                                                  (4, 19)])
     self.assertEqual(actual["player_locations"], [(2, 6)])
     self.assertEqual(actual["position"], (3, 19))
Beispiel #3
0
 def __send_game_over(self):
     """
     Sends the game over message to all connected entitites.
     """
     for actor in self.__all_actors.values():
         actor.accept_game_state(
             StateExporter.create_end_game_state(self.state))
     self.__update_observers()
Beispiel #4
0
 def __update_observers(self):
     """
     Updates the observer on the GameState.
     """
     for observer in self.__observers:
         observer.accept_game_state(
             StateExporter.create_observer_game_state(self.state),
             self.__get_observation_confirmation)
 def test_create_end_level_state(self):
     game_state = create_basic_game_state()
     actual = StateExporter.create_end_level_state(game_state, 1)
     expected = {
         "type": "end-level",
         "key": None,
         "exits": [],
         "ejects": [],
     }
     self.assertEqual(actual, expected)
Beispiel #6
0
 def __send_level_over(self):
     """
     Sends the level over message to all connected entitites.
     """
     level_number = self.state.current_level - 1 + RuleChecker.is_game_over(
         self.state)
     for actor in self.__all_actors.values():
         actor.accept_game_state(
             StateExporter.create_end_level_state(self.state, level_number))
     self.__update_observers()
 def test_create_end_game_state(self):
     game_state = create_basic_game_state()
     actual = StateExporter.create_end_game_state(game_state)
     expected_scores = [{
         'ejects': 0,
         'exits': 0,
         'keys': 0,
         'name': 'p1',
         'type': 'player-score'
     }]
     self.assertEqual(actual["type"], "end-game")
     self.assertEqual(actual["scores"], expected_scores)
 def test_create_player_update(self):
     game_state = create_basic_game_state()
     actual = StateExporter.create_player_update(game_state, "p1")
     expected_layout = [[0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 1, 1, 1],
                        [0, 0, 1, 1, 1], [0, 0, 1, 1, 1]]
     self.assertEqual(actual["type"], "player-update")
     self.assertEqual(actual["layout"], expected_layout)
     self.assertEqual(actual["objects"], [])
     self.assertEqual(actual["actors"], [])
     self.assertEqual(actual["position"], (2, 6))
     self.assertEqual(actual["message"], "Current Turn: 0\n")
     self.assertEqual(actual["health"], 50)
Beispiel #9
0
def end_game():
    view.render_game_over(StateExporter.create_end_game_state(state))
Beispiel #10
0
def end_level():
    view.render_level_over(StateExporter.create_end_level_state(state, 0))
Beispiel #11
0
def adversary_update():
    update = StateExporter.create_adversary_game_state(state, "a0")
    print(update)
Beispiel #12
0
def player_update():
    view.render_player_update(StateExporter.create_player_update(state, "p0"))
Beispiel #13
0
def observer_view():
    view.render_observer_state(StateExporter.create_observer_game_state(state))