コード例 #1
0
ファイル: mc.py プロジェクト: fregaham/manaclash
        for i in range(count):
            card = cards.get(name)
            if card is not None:
                cardObject = createCardObject(g, card)
                c1.append(cardObject)
            else:
                print ("Card %s doesn't exist!" % name)

    random.shuffle(c1)
    g.create_player("Player1", c1)

    c2 = []
    for count, name in parse_deckfile(sys.argv[2]):
        for i in range(count):
            card = cards.get(name)
            if card is not None:
                cardObject = createCardObject(g, card)
                c2.append(cardObject)
            else:
                print ("Card %s doesn't exist!" % name)

    random.shuffle(c2)
    g.create_player("Player2", c2)

    g.process_push(MainGameProcess())

    input_generator(g)
    # process_game(g)


コード例 #2
0
ファイル: abserver.py プロジェクト: fregaham/manaclash
class ABGame:
    def __init__ (self, id):
        self.id = id
        self.players = []
        self.current_player = None
        self.current_state = None
        self.queue = Queue()
        self.game = None
        self.solitaire = False
        self.current_actions = None

    def remove(self, player):
        self.players.remove(player)
        player.user.players.remove(player)

        if player.client is not None:
            player.client.setPlayer(None)

        g_factory.dispatch("http://manaclash.org/game/" + str(self.id) + "/remove", (player.user.login, player.role))

    def add(self, player):
        self.players.append(player)
        player.user.players.append(player)

        if player.client is not None:
            player.client.setPlayer(player)

        g_factory.dispatch("http://manaclash.org/game/" + str(self.id) + "/add", (player.user.login, player.role))

    def start(self):

        print "game " + str(self.id) + " starting"

        output = ABOutput(self)

        self.game = Game(output)
        self.game.create()

        c1 = []
        for count, name in self.players[0].deck:
            for i in range(count):
                card = g_cards.get(name)
                if card is not None:
                    cardObject = createCardObject(self.game, card)
                    c1.append(cardObject)
                else:
                    print ("Card %s doesn't exist!" % name)

        random.shuffle(c1)

        self.game.create_player(self.players[0].user.login, c1)

        c2 = []
        for count, name in self.players[1].deck:
            for i in range(count):
                card = g_cards.get(name)
                if card is not None:
                    cardObject = createCardObject(self.game, card)
                    c2.append(cardObject)
                else:
                    print ("Card %s doesn't exist!" % name)

        random.shuffle(c2)
        self.game.create_player(self.players[1].user.login, c2)

        self.game.process_push(MainGameProcess())

        self.current_actions = self.game.next(None)

        self.current_state = ab_game_state(self.game, self.current_actions)

        # Get the current ab_player by the role
        self.current_player = None
        for ab_player in self.players:
            if ab_player.role == self.current_state["player"]:
                self.current_player = ab_player

        g_factory.dispatch("http://manaclash.org/game/" + str(self.id) + "/state", self.current_state)

    def end(self):
        g_factory.dispatch("http://manaclash.org/game/" + str(self.id) + "/state", self.current_state)
        players = self.players[:]
        for player in players:
            self.remove(player)
        self.game = None
        self.current_state = None
        self.current_player = None

        dispatchUsers()
        dispatchGames()
        reactor.callLater(1, startDuels)