本文整理汇总了Python中rgkit.gamestate.GameState类的典型用法代码示例。如果您正苦于以下问题:Python GameState类的具体用法?Python GameState怎么用?Python GameState使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了GameState类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Python代码示例。
示例1: test_add_robot
def test_add_robot(self):
state = GameState()
state.add_robot((9, 9), 0, robot_id=7, hp=42)
self.assertTrue((9, 9) in state.robots)
self.assertEquals(state.robots[(9, 9)].player_id, 0)
self.assertEquals(state.robots[(9, 9)].robot_id, 7)
self.assertEquals(state.robots[(9, 9)].hp, 42)
开发者ID:svankina,项目名称:rgkit,代码行数:7,代码来源:state_misc_test.py
示例2: test_lack_of_location
def test_lack_of_location(self):
state = GameState()
state.add_robot((9, 9), 0)
robot = state.robots[(9, 9)]
with self.assertRaises(Exception):
Player._validate_action(robot, ['move'])
开发者ID:DynCodingForKids,项目名称:rgkit,代码行数:7,代码来源:valid_test.py
示例3: test_first_turn_spawning
def test_first_turn_spawning(self):
state = GameState()
actions = {}
state2 = state.apply_actions(actions)
self.assertEqual(state2.get_scores(), [settings.spawn_per_player, settings.spawn_per_player])
开发者ID:svankina,项目名称:rgkit,代码行数:8,代码来源:spawn_test.py
示例4: test_spawn_hop_in
def test_spawn_hop_in(self):
state = GameState()
state.add_robot((4, 4), 0)
actions = {(4, 4): ["move", (4, 3)]}
state2 = state.apply_actions(actions)
self.assertTrue(not state2.is_robot((4, 3)) or state2.robots[(4, 3)].robot_id != state.robots[4, 4].robot_id)
开发者ID:svankina,项目名称:rgkit,代码行数:10,代码来源:spawn_test.py
示例5: test_spawn_dodge
def test_spawn_dodge(self):
state = GameState()
state.add_robot((4, 3), 0)
actions = {(4, 3): ["move", (4, 4)]}
state2 = state.apply_actions(actions)
self.assertTrue(state2.is_robot((4, 4)))
开发者ID:svankina,项目名称:rgkit,代码行数:10,代码来源:spawn_test.py
示例6: test_spawn_kills
def test_spawn_kills(self):
state = GameState()
state.add_robot((4, 3), 0)
actions = {(4, 3): ["guard"]}
state2 = state.apply_actions(actions)
self.assertTrue(not state2.is_robot((4, 3)) or state2.robots[(4, 3)].robot_id != state.robots[4, 3].robot_id)
开发者ID:svankina,项目名称:rgkit,代码行数:10,代码来源:spawn_test.py
示例7: test_repr_too_long
def test_repr_too_long(self):
state = GameState()
state.add_robot((9, 9), 0)
class long_action(list):
def __repr__(self):
return 'leethaxxor' * 100
action = long_action(['guard'])
self.assertFalse(state.is_valid_action((9, 9), action))
开发者ID:berleon,项目名称:rgkit,代码行数:10,代码来源:valid_test.py
示例8: test_apply_actions
def test_apply_actions(self):
state = GameState.create_from_json(self.game1)
moves = GameState.create_actions_from_json(self.actions1)
new_state = state.apply_actions(moves)
info = new_state.get_game_info(json=True, seed=True)
# TODO: Less mysterious randomization please -_-.
r1 = random.Random('0' + 's')
self.result1['seed'] = str(r1.randint(0, settings.max_seed))
r2 = random.Random('0' + 'a')
hp_left = 50 - r2.randint(*settings.attack_range)
self.result1['robots'][0]['hp'] = hp_left
self.assertEqual(self.sprint(self.result1), self.sprint(info))
开发者ID:Earthlandto,项目名称:Skyners,代码行数:14,代码来源:json_test.py
示例9: test_ok
def test_ok(self):
state = GameState()
state.add_robot((9, 9), 0)
robot = state.robots[(9, 9)]
Player._validate_action(robot, ['guard'])
Player._validate_action(robot, ['suicide'])
Player._validate_action(robot, ['guard', None])
Player._validate_action(robot, ['suicide', (1, 1)])
Player._validate_action(robot, ['attack', (9, 10)])
Player._validate_action(robot, ['move', (9, 10)])
Player._validate_action(robot, ('guard', (2, 3)))
Player._validate_action(robot, ('suicide', None))
Player._validate_action(robot, ('attack', (9, 10)))
Player._validate_action(robot, ('move', (9, 10)))
开发者ID:DynCodingForKids,项目名称:rgkit,代码行数:14,代码来源:valid_test.py
示例10: test_unobvious_collision
def test_unobvious_collision(self):
state = GameState(settings)
state.add_robot((9, 10), 0)
state.add_robot((9, 12), 1)
state.add_robot((9, 11), 0)
state.add_robot((11, 11), 1)
actions = {
(9, 10): ['move', (9, 11)],
(9, 12): ['move', (9, 11)],
(9, 11): ['move', (10, 11)],
(11, 11): ['move', (10, 11)]
}
state2 = state.apply_actions(actions, spawn=False)
self.assertTrue(state2.is_robot((9, 10)))
self.assertEqual(state2.robots[9, 10].hp, settings.robot_hp)
self.assertTrue(state2.is_robot((9, 12)))
self.assertEqual(state2.robots[9, 12].hp,
settings.robot_hp - settings.collision_damage)
self.assertTrue(state2.is_robot((9, 11)))
self.assertEqual(state2.robots[9, 11].hp,
settings.robot_hp - settings.collision_damage*2)
self.assertTrue(state2.is_robot((11, 11)))
self.assertEqual(state2.robots[11, 11].hp,
settings.robot_hp - settings.collision_damage)
开发者ID:mic159,项目名称:rgkit,代码行数:27,代码来源:move_test.py
示例11: test_train_collision
def test_train_collision(self):
state = GameState(settings)
state.add_robot((10, 10), 0)
state.add_robot((11, 10), 1)
state.add_robot((12, 10), 0)
state.add_robot((8, 10), 1)
actions = {
(10, 10): ['move', (9, 10)],
(11, 10): ['move', (10, 10)],
(12, 10): ['move', (11, 10)],
(8, 10): ['move', (9, 10)]
}
state2 = state.apply_actions(actions, spawn=False)
self.assertTrue(state2.is_robot((10, 10)))
self.assertEqual(state2.robots[10, 10].hp,
settings.robot_hp - settings.collision_damage*2)
self.assertTrue(state2.is_robot((11, 10)))
self.assertEqual(state2.robots[11, 10].hp,
settings.robot_hp - settings.collision_damage*2)
self.assertTrue(state2.is_robot((12, 10)))
self.assertEqual(state2.robots[12, 10].hp,
settings.robot_hp - settings.collision_damage)
self.assertTrue(state2.is_robot((8, 10)))
self.assertEqual(state2.robots[8, 10].hp,
settings.robot_hp - settings.collision_damage)
开发者ID:mic159,项目名称:rgkit,代码行数:28,代码来源:move_test.py
示例12: test_spawn_dodge_overwrite
def test_spawn_dodge_overwrite(self):
state = GameState()
state.add_robot((4, 3), 0)
actions = {
(4, 3): ['move', (4, 4)]
}
# ensure that a robot will get spawned at (4, 3)
state._get_spawn_locations = lambda: [(i, 3) for i in range(10)]
state2 = state.apply_actions(actions)
self.assertTrue(state2.is_robot((4, 4)))
self.assertTrue(state2.is_robot((4, 3)))
开发者ID:Earthlandto,项目名称:Skyners,代码行数:16,代码来源:spawn_test.py
示例13: test_load_json_game_state
def test_load_json_game_state(self):
# Dump and load to validate
data = json.loads(json.dumps(self.game1))
state = GameState.create_from_json(data)
info = state.get_game_info(json=True, seed=True)
self.assertEqual(self.sprint(self.game1), self.sprint(info))
开发者ID:Earthlandto,项目名称:Skyners,代码行数:7,代码来源:json_test.py
示例14: test_load_json_actions
def test_load_json_actions(self):
data = json.loads(json.dumps(self.actions1))
moves = GameState.create_actions_from_json(data)
self.assertTrue((10, 12) in moves)
self.assertEqual(json.dumps(moves[(10, 12)]),
json.dumps(['move', [10, 11]]))
开发者ID:Earthlandto,项目名称:Skyners,代码行数:7,代码来源:json_test.py
示例15: test_ok
def test_ok(self):
state = GameState()
state.add_robot((9, 9), 0)
self.assertTrue(state.is_valid_action((9, 9), ['guard']))
self.assertTrue(state.is_valid_action((9, 9), ['suicide']))
self.assertTrue(state.is_valid_action((9, 9), ['attack', (9, 10)]))
self.assertTrue(state.is_valid_action((9, 9), ['move', (9, 10)]))
开发者ID:berleon,项目名称:rgkit,代码行数:7,代码来源:valid_test.py
示例16: test_suicide
def test_suicide(self):
state = GameState()
loc1 = (10, 11)
dest1 = (10, 10)
loc2 = (9, 10)
state.add_robot(loc1, 0)
state.add_robot(loc2, 1)
actions = {
loc1: ['move', dest1],
loc2: ['suicide']
}
deltas = state.get_delta(actions)
d_guard = delta_for(deltas, loc1)
d_suicide = delta_for(deltas, loc2)
self.assertEqual(d_guard.hp - d_guard.hp_end, d_suicide.damage_caused)
开发者ID:DynCodingForKids,项目名称:rgkit,代码行数:19,代码来源:delta_test.py
示例17: test_attack
def test_attack(self):
state = GameState()
loc1 = (10, 11)
dest1 = (10, 10)
loc2 = (9, 10)
dest2 = dest1
state.add_robot(loc1, 0)
state.add_robot(loc2, 1)
actions = {
loc1: ['move', dest1],
loc2: ['attack', dest2]
}
deltas = state.get_delta(actions)
d_move = delta_for(deltas, loc1)
d_attack = delta_for(deltas, loc2)
self.assertEqual(d_move.hp - d_move.hp_end, d_attack.damage_caused)
开发者ID:DynCodingForKids,项目名称:rgkit,代码行数:20,代码来源:delta_test.py
示例18: __init__
def __init__(self, player1_path, player2_path):
self.match_id = None
self.player = Player(player1_path) if player1_path else None
if self.player:
self.player1_path = player1_path
self.player.set_player_id(1)
self.player2 = Player(player2_path) if player2_path else None
if self.player2:
self.player2_path = player2_path
self.player2.set_player_id(0)
self.turn_repeat = False
self.UI = SimulatorUI(settings)
self.UI.setTitle("Robot Game Simulator")
self.state = GameState(settings, turn=1)
self.cached_actions = None
self.human_actions = {}
self.UI.setTurn(self.state.turn)
self.UI.bind("w", lambda ev: self.UI.moveSelection((0, -1)))
self.UI.bind("a", lambda ev: self.UI.moveSelection((-1, 0)))
self.UI.bind("s", lambda ev: self.UI.moveSelection((0, 1)))
self.UI.bind("d", lambda ev: self.UI.moveSelection((1, 0)))
self.UI.bind("<Up>", lambda ev: self.UI.moveSelection((0, -1)))
self.UI.bind("<Left>", lambda ev: self.UI.moveSelection((-1, 0)))
self.UI.bind("<Down>", lambda ev: self.UI.moveSelection((0, 1)))
self.UI.bind("<Right>", lambda ev: self.UI.moveSelection((1, 0)))
self.UI.bind("<ButtonPress-1>", lambda ev: self.UI.onMouseClick(ev))
self.UI.bind("l", self.onLoadMatch)
self.UI.bind("k", self.onLoadTurn)
self.UI.bind("o", self.onReloadPlayer)
self.UI.bind("p", self.onSwapPlayer)
self.UI.bind("t", self.onEditTurn)
self.UI.bind("f", self.onAddTeammate)
self.UI.bind("e", self.onAddEnemy)
self.UI.bind("r", self.onRemove)
self.UI.bind("c", self.onClear)
self.UI.bind("<Delete>", self.onRemove)
self.UI.bind("<BackSpace>", self.onRemove)
self.UI.bind("h", self.onEditHP)
self.UI.bind("<space>", self.onShowActions)
self.UI.bind("<Return>", self.onSimulate)
self.UI.bind("n", self.onNextAction)
self.UI.bind("g", self.onSpawnRobots)
self.UI.run()
开发者ID:mpeterv,项目名称:rgsimulator,代码行数:53,代码来源:rgsimulator.py
示例19: test_three_collision
def test_three_collision(self):
state = GameState()
loc1 = (10, 11)
loc2 = (9, 10)
loc3 = (11, 10)
dest = (10, 10)
state.add_robot(loc1, 0)
state.add_robot(loc2, 1)
state.add_robot(loc3, 1)
actions = {
loc1: ['move', dest],
loc2: ['move', dest],
loc3: ['move', dest]
}
deltas = state.get_delta(actions)
d_player0 = delta_for(deltas, loc1)
d_player1_1 = delta_for(deltas, loc2)
d_player1_2 = delta_for(deltas, loc3)
self.assertEqual(d_player0.hp - d_player0.hp_end,
d_player1_1.damage_caused + d_player1_2.damage_caused)
player1_hp_lose = d_player1_1.hp - d_player1_1.hp_end + \
d_player1_2.hp - d_player1_2.hp_end
self.assertEqual(player1_hp_lose, d_player0.damage_caused)
开发者ID:DynCodingForKids,项目名称:rgkit,代码行数:31,代码来源:delta_test.py
示例20: test_try_move_in_circle
def test_try_move_in_circle(self):
state = GameState(settings)
state.add_robot((8, 8), 0)
state.add_robot((9, 8), 1)
state.add_robot((9, 9), 0)
state.add_robot((8, 9), 1)
actions = {
(8, 8): ['move', (9, 8)],
(9, 8): ['move', (9, 9)],
(9, 9): ['move', (8, 9)],
(8, 9): ['move', (8, 8)]
}
state2 = state.apply_actions(actions, spawn=False)
self.assertTrue(state2.is_robot((9, 8)))
self.assertEqual(state2.robots[9, 8].hp, settings.robot_hp)
self.assertEqual(state2.robots[9, 8].player_id, 0)
self.assertTrue(state2.is_robot((9, 9)))
self.assertEqual(state2.robots[9, 9].hp, settings.robot_hp)
self.assertEqual(state2.robots[9, 9].player_id, 1)
self.assertTrue(state2.is_robot((8, 9)))
self.assertEqual(state2.robots[8, 9].hp, settings.robot_hp)
self.assertEqual(state2.robots[8, 9].player_id, 0)
self.assertTrue(state2.is_robot((8, 8)))
self.assertEqual(state2.robots[8, 8].hp, settings.robot_hp)
self.assertEqual(state2.robots[8, 8].player_id, 1)
开发者ID:mic159,项目名称:rgkit,代码行数:28,代码来源:move_test.py
注:本文中的rgkit.gamestate.GameState类示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论