コード例 #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_steal.py プロジェクト: linluxiang/sgs
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),
コード例 #3
0
ファイル: test_duel.py プロジェクト: linluxiang/sgs
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
コード例 #4
0
ファイル: test_players_control.py プロジェクト: neuront/sgs
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]