def test_play_turn_move(): """Checks that bot is moved to intended space""" turn = 0 l = layout.get_layout_by_name("small_100") parsed_l = layout.parse_layout(l) game_state = { "food": parsed_l["food"], "walls": parsed_l["walls"], "bots": parsed_l["bots"], "shape": parsed_l["shape"], "max_rounds": 300, "team_names": ("a", "b"), "turn": turn, "round": 0, "timeout": [], "gameover": False, "whowins": None, "team_say": "bla", "score": 0, "error_limit": 5, "kills": [0] * 4, "deaths": [0] * 4, "bot_was_killed": [False] * 4, "errors": [[], []], "fatal_errors": [{}, {}], "rnd": random.Random() } legal_positions = get_legal_positions(game_state["walls"], game_state["shape"], game_state["bots"][turn]) game_state_new = apply_move(game_state, legal_positions[0]) assert game_state_new["bots"][turn] == legal_positions[0]
def test_get_legal_positions_basic(): """Check that the output of legal moves contains all legal moves for one example layout""" l = layout.get_layout_by_name(layout_name="small_100") parsed_l = layout.parse_layout(l) legal_positions = get_legal_positions(parsed_l["walls"], parsed_l["bots"][0]) exp = [(1, 4), (1, 6), (1, 5)] assert legal_positions == exp
def test_initial_positions_same_in_layout(layout_name): """Check initial positions are the same as what the layout says for all layouts""" l = layout.get_layout_by_name(layout_name=layout_name) parsed_l = layout.parse_layout(l) exp = parsed_l["bots"] walls = parsed_l["walls"] out = initial_positions(walls) assert out == exp
def setup_random_basic_gamestate(*, round=1, turn=0): """helper function for testing play turn""" l = layout.get_layout_by_name("small_100") parsed_l = layout.parse_layout(l) stopping = lambda bot, s: (bot.position, s) game_state = setup_game([stopping, stopping], layout_dict=parsed_l) game_state['round'] = round game_state['turn'] = turn return game_state
#!/usr/bin/python from pelita.game_master import GameMaster from pelita.player import BFSPlayer, BasicDefensePlayer, SimpleTeam, StoppingPlayer from pelita.viewer import AsciiViewer from pelita.layout import get_layout_by_name if __name__ == '__main__': layout = get_layout_by_name('layout_01_demo') gm = GameMaster(layout, 4, 200) gm.register_team(SimpleTeam(BFSPlayer(), BFSPlayer())) gm.register_team(SimpleTeam(BasicDefensePlayer(), BasicDefensePlayer())) gm.register_viewer(AsciiViewer()) gm.play()