示例#1
0
文件: game_init.py 项目: neuront/sgs
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
示例#2
0
                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),
                test_data.CardInfo("steal", 9, card.HEART),
                test_data.CardInfo("steal", 10, card.CLUB),
            ]
        )
    ),
    pc,
    ActionStack(),
)
players = [Player(19, 3), 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

# cards:
# name     | rank | id | suit

# -chitu   | 5    | 0  | HEART
# -dawan   | 13   | 1  | SPADE
# +jueying | 5    | 2  | SPADE
# slash    | 1    | 3  | CLUB
# steal    | 9    | 12 | HEART <- use this
# steal    | 10   | 13 | CLUB

# steal    | 7    | 4  | CLUB
示例#3
0
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

# cards:
# name        | rank (id = rank - 1) | suit

# duel        | 1                    | SPADE   <- use this to duel
# fire attack | 2                    | HEART
# slash       | 3                    | DIAMOND
# duel        | 4                    | SPADE
# duel        | 9                    | SPADE
# slash       | 10                   | SPADE

# slash       | 5                    | CLUB
示例#4
0
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())
示例#5
0
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())
示例#6
0
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]