def multi_battle_case_test(): g = Game(enable_no_resp_die = False, map = "srcs/map/ut_test.yml") yield check_game_empty, g, game.WAITFORPLAYER player1 = g.add_player('player1') eq_(player1['seq'], 0) player2 = g.add_player('player2') eq_(player2['seq'], 1) player3 = g.add_player('player3') eq_(player3['seq'], 2) #round 0: eq_(g.holds, [[0, 100],[1, 100], [2, 100], [None, 0], [None, 0]]) eq_(g.status, game.WAITFORPLAYER) eq_(g.round, 0) #round 1: ok_(g.step()) eq_(g.holds, [[0, 120], [1, 110], [2, 110], [None, 0], [None, 0]]) #round 2: g.set_player_op(player1['id'], dict(op='moves', moves=[[50, 0, 4],])) #g.set_player_op(player1['id'], dict(op='moves', moves=[[100, 0, 4], ])) g.step() eq_(g.holds, [[0, 87], [1, 120], [2, 120], [None, 0], [0, 75]]) #round 3: g.set_player_op(player1['id'], dict(op='moves', moves=[[50, 0, 4], ])) g.set_player_op(player2['id'], dict(op='moves', moves=[[100, 1, 4], ])) g.set_player_op(player3['id'], dict(op='moves', moves=[[110, 2, 4], ])) g.step() eq_(g.holds, [[0, 50], [1, 30], [2, 20], [None, 0], [2, 43]]) #round 4: g.set_player_op(player1['id'], dict(op='moves', moves=[[21, 0, 4], ])) g.set_player_op(player2['id'], dict(op='moves', moves=[[10, 1, 4], ])) g.set_player_op(player3['id'], dict(op='moves', moves=[[1, 4, 2], ])) g.step() eq_(g.holds, [[0, 41], [1, 30], [2, 31], [None, 0], [None, 0]])
def move_zero_test(): g = Game(enable_no_resp_die = False, map = "srcs/map/ut_test.yml") # add_player player1 = g.add_player('player1') eq_(player1['seq'], 0) player2 = g.add_player('player2') eq_(player2['seq'], 1) # add a empty move g.set_player_op(player1['id'], dict(op='moves', moves=[[0, 0, 4]])) g.move_stage() g.battle_stage(g.arrive_stage()) eq_(g.holds, [[0, 100], [1, 100], [None, 0], [None, 0], [None, 0]]) g.next_round() eq_(g.holds, [[0, 120], [1, 110], [None, 0], [None, 0], [None, 0]])
def move_test(): g = Game(enable_no_resp_die = False, map = "srcs/map/ut_test.yml") # add_player player1 = g.add_player('player1') eq_(player1['seq'], 0) player2 = g.add_player('player2') eq_(player2['seq'], 1) # add two action eq_(g.set_player_op(player1['id'], dict(op='moves', moves=[[50, 0, 4],[50, 0, 2],])), "ok") g.step() eq_(g.holds, [[None, 0], [1, 110], [None, 0], [None, 0], [0, 75]])
def play_game_case_test(): # init game g = Game(enable_no_resp_die = False, map = "srcs/map/ut_test.yml") yield check_game_empty, g, game.WAITFORPLAYER # add_player player1 = g.add_player('player1') eq_(player1['seq'], 0) player2 = g.add_player('player2') eq_(player2['seq'], 1) # round 0: eq_(g.holds, [[0, 100], [1, 100], [None, 0], [None, 0], [None, 0]]) eq_(g.status, game.WAITFORPLAYER) eq_(g.round, 0) # round 1: ok_(g.step()) eq_(g.round, 1) eq_(g.holds, [[0, 120], [1, 110], [None, 0], [None, 0], [None, 0]]) # round 2: ok_(g.step()) eq_(g.holds, [[0, 142], [1, 120], [None, 0], [None, 0], [None, 0]]) # round 3: test move & arrive g.set_player_op(player1['id'], dict(op='moves', moves=[[100, 0, 4], ])) g.step() eq_(g.holds, [[0, 56], [1, 130], [None, 0], [None, 0], [0, 150]]) # round4: move all eq_(g.set_player_op(player1['id'], dict(op='moves', moves=[[56, 0, 4], ])), "ok") g.step() eq_(g.holds, [[None, 0], [1, 140], [None, 0], [None, 0], [0, 300]]) # what for a long time: for i in range(100): g.step() eq_(g.holds, [[None, 0], [1, 1000], [None, 0], [None, 0], [0, 300]]) # let's fight g.set_player_op(player2['id'], dict(op='moves', moves=[[100, 1, 4],])) g.step() # Attack: 100 Defence 150 => 150 - 100 * 100 / 150 = 84 ~ 168 # growth: 168 * 1.5 = 252 eq_(g.holds, [[None, 0], [1, 910], [None, 0], [None, 0], [0, 249]]) g.step() eq_(g.holds, [[None, 0], [1, 920], [None, 0], [None, 0], [0, 300]]) # get a new planet g.set_player_op(player1['id'], dict(op='moves', moves=[[1, 4, 0], ])) g.step() eq_(g.holds,[[0, 11], [1, 930], [None, 0], [None, 0], [0, 300]]) g.step() eq_(g.holds,[[0, 22], [1, 940], [None, 0], [None, 0], [0, 300]]) print g.moves