def statuses_mode(players_tokens): if len(players_tokens) < 2: raise ValueError('too few players, need at least 2') if 8 < len(players_tokens): raise ValueError('too much players, need at most 8') random.shuffle(players_tokens) players = [Player(t) for t in players_tokens] pc = PlayersControl() for p in players: pc.add_player(p) gc = GameControl(EventList(), CardPool.create(), pc, ActionStack()) gc.game_init(players) host = players[0] others = players[1:] def after_host_selected(): gc.push_frame(_SelectCharacter( gc, others, { p.token: characters_select_dict(random_pick_characters(3)) for p in others }, gc.start)) gc.push_frame(_SelectCharacter( gc, [host], { host.token: characters_select_dict(random_pick_characters(3)) }, after_host_selected)) return gc
from core.src.game_control import GameControl from core.src.event import EventList from core.src.action_stack import ActionStack import core.src.card as card import core.src.ret_code as ret_code from ext.src.players_control import PlayersControl from ext.src.player import Player from test_common import * import test_data pc = PlayersControl() gc = GameControl( EventList(), test_data.CardPool( test_data.gen_cards( [ test_data.CardInfo("-chitu", 5, card.HEART), test_data.CardInfo("-dawan", 13, card.SPADE), test_data.CardInfo("+jueying", 5, card.SPADE), test_data.CardInfo("slash", 1, card.CLUB), test_data.CardInfo("steal", 7, card.CLUB), test_data.CardInfo("duel", 8, card.DIAMOND), test_data.CardInfo("-zixing", 13, card.DIAMOND), test_data.CardInfo("+dilu", 5, card.CLUB), test_data.CardInfo("slash", 1, card.CLUB), test_data.CardInfo("slash", 1, card.CLUB), test_data.CardInfo("slash", 1, card.CLUB), test_data.CardInfo("slash", 1, card.CLUB), test_data.CardInfo("steal", 9, card.HEART), test_data.CardInfo("steal", 10, card.CLUB),
from core.src.game_control import GameControl from core.src.event import EventList from core.src.action_stack import ActionStack import core.src.card as card import core.src.ret_code as ret_code from ext.src.players_control import PlayersControl from ext.src.player import Player from test_common import * import test_data pc = PlayersControl() gc = GameControl(EventList(), test_data.CardPool(test_data.gen_cards([ test_data.CardInfo('duel', 1, card.SPADE), test_data.CardInfo('fire attack', 2, card.HEART), test_data.CardInfo('slash', 3, card.DIAMOND), test_data.CardInfo('duel', 4, card.SPADE), test_data.CardInfo('slash', 5, card.CLUB), test_data.CardInfo('fire attack', 6, card.HEART), test_data.CardInfo('dodge', 7, card.DIAMOND), test_data.CardInfo('slash', 8, card.DIAMOND), test_data.CardInfo('duel', 9, card.SPADE), test_data.CardInfo('slash', 10, card.SPADE), ])), pc, ActionStack()) players = [Player(91, 4), Player(1729, 4)] map(lambda p: pc.add_player(p), players) gc.start() last_event_id = len(gc.get_events(players[0].token, 0)) # until getting cards
from ext.src.players_control import PlayersControl from ext.test.fake_player import Player from test_common import * pc = PlayersControl() players = [Player(i, 1) for i in range(10000, 10008)] for p in players: pc.add_player(p) assert_eq(players[0], pc.current_player()) assert_eq([players[i] for i in range(1, 8)], pc.succeeding_players()) pc.next_player() assert_eq(players[1], pc.current_player()) assert_eq([players[i] for i in range(2, 8)] + [players[0]], pc.succeeding_players()) players[3].alive = False assert_eq(players[1], pc.current_player()) assert_eq([players[2]] + [players[i] for i in range(4, 8)] + [players[0]], pc.succeeding_players()) pc.next_player() assert_eq(players[2], pc.current_player()) assert_eq([players[i] for i in range(4, 8)] + [players[0], players[1]], pc.succeeding_players()) pc.next_player() assert_eq(players[4], pc.current_player()) assert_eq([players[i] for i in range(5, 8)] + [players[i] for i in range(0, 3)], pc.succeeding_players()) players[4].alive = False assert_eq([players[i] for i in range(5, 8)] + [players[i] for i in range(0, 3)], pc.succeeding_players())
from ext.src.players_control import PlayersControl from ext.src.player import Player from test_common import * pc = PlayersControl() players = [Player(i, 1) for i in range(10000, 10008)] for p in players: pc.add_player(p) assert_eq(players[0], pc.current_player()) assert_eq([players[i] for i in range(1, 8)], pc.succeeding_players()) pc.next_player() assert_eq(players[1], pc.current_player()) assert_eq([players[i] for i in range(2, 8)] + [players[0]], pc.succeeding_players()) players[3].alive = False assert_eq(players[1], pc.current_player()) assert_eq([players[2]] + [players[i] for i in range(4, 8)] + [players[0]], pc.succeeding_players()) pc.next_player() assert_eq(players[2], pc.current_player()) assert_eq([players[i] for i in range(4, 8)] + [players[0], players[1]], pc.succeeding_players()) pc.next_player() assert_eq(players[4], pc.current_player()) assert_eq([players[i] for i in range(5, 8)] + [players[i] for i in range(0, 3)], pc.succeeding_players())
from ext.src.players_control import PlayersControl from ext.src.player import Player from test_common import * pc = PlayersControl() players = [Player(i, 1) for i in range(10000, 10008)] for p in players: pc.add_player(p) assert_eq(players[0], pc.current_player()) assert_eq([players[i] for i in range(1, 8)], pc.succeeding_players()) pc.next_player() assert_eq(players[1], pc.current_player()) assert_eq([players[i] for i in range(2, 8)] + [players[0]], pc.succeeding_players()) players[3].alive = False assert_eq(players[1], pc.current_player()) assert_eq([players[2]] + [players[i] for i in range(4, 8)] + [players[0]], pc.succeeding_players()) pc.next_player() assert_eq(players[2], pc.current_player()) assert_eq([players[i] for i in range(4, 8)] + [players[0], players[1]], pc.succeeding_players()) pc.next_player() assert_eq(players[4], pc.current_player()) assert_eq([players[i]