def test_killed(self): state = generator.LevelState(width=4, height=4, exit_pos=(0, -1)) state.set_tile((0, 0), generator.Tile.PLAYER) state.set_tile((2, 0), generator.Tile.ENEMY) new_state = generator.LevelState(state=state, move=generator.Move.RIGHT) self.assertEqual(new_state.outcome, generator.MoveOutcome.PLAYER_KILLED) self.assertEqual(new_state.tile((3, 0)), generator.Tile.ENEMY)
def test_crushed(self): state = generator.LevelState(width=4, height=4, exit_pos=(0, -1)) state.set_tile((0, 0), generator.Tile.PLAYER) state.set_tile((3, 0), generator.Tile.BLOCK) state.set_tile((2, 0), generator.Tile.BLOCK, flipped=True) new_state = generator.LevelState(state=state, move=generator.Move.RIGHT) self.assertEqual(new_state.outcome, generator.MoveOutcome.MOVED) new_state = generator.LevelState(state=new_state, move=generator.Move.CHANGE) self.assertEqual(new_state.outcome, generator.MoveOutcome.PLAYER_CRUSHED)
def test_right_blocked(self): state = generator.LevelState(width=4, height=4, exit_pos=(0, -1)) state.set_tile((0, 0), generator.Tile.PLAYER) state.set_tile((2, 0), generator.Tile.BLOCK) new_state = generator.LevelState(state=state, move=generator.Move.RIGHT) self.assertEqual(new_state.outcome, generator.MoveOutcome.MOVED) new_state = generator.LevelState(state=new_state, move=generator.Move.RIGHT) self.assertEqual(new_state.outcome, generator.MoveOutcome.NOTHING) self.assertEqual(new_state.tile((1, 0)), generator.Tile.PLAYER)
def test_bot_player_finds_win(self): state = generator.LevelState(width=4, height=4, exit_pos=(0, -1)) state.set_tile((1, 0), generator.Tile.BLOCK) state.set_tile((3, 0), generator.Tile.PLAYER) expected_moves = [generator.Move.DOWN, generator.Move.LEFT, generator.Move.UP] bot = generator.BotPlayer(state) found_path = bot.search_path_ids() self.assertEqual(found_path, expected_moves)
def test_player_wins(self): state = generator.LevelState(width=4, height=4, exit_pos=(0, -1)) state.set_tile((0, 3), generator.Tile.PLAYER) new_state = generator.LevelState(state=state, move=generator.Move.UP) self.assertEqual(new_state.outcome, generator.MoveOutcome.PLAYER_WON)
def test_enemy_won(self): state = generator.LevelState(width=4, height=4, exit_pos=(0, -1)) state.set_tile((1, 1), generator.Tile.PLAYER) state.set_tile((0, 0), generator.Tile.ENEMY) new_state = generator.LevelState(state=state, move=generator.Move.UP) self.assertEqual(new_state.outcome, generator.MoveOutcome.ENEMY_WON)
def test_left_nothing(self): state = generator.LevelState(width=4, height=4, exit_pos=(0, -1)) state.set_tile((0, 0), generator.Tile.PLAYER) new_state = generator.LevelState(state=state, move=generator.Move.LEFT) self.assertEqual(new_state.outcome, generator.MoveOutcome.NOTHING)