示例#1
0
    def test_lower_trump_is_allowed_if_no_other_cards_are_in_hand(
            self) -> None:
        players = [Player(), Player(), Player(), Player()]
        players[0].hand = {Card(suit=Suit.HEARTS, rank=Rank.KING)}
        players[1].hand = {Card(suit=Suit.DIAMONDS, rank=Rank.ACE)}
        players[2].hand = {
            Card(suit=Suit.DIAMONDS, rank=Rank.TEN),
            Card(suit=Suit.DIAMONDS, rank=Rank.KING),
            Card(suit=Suit.DIAMONDS, rank=Rank.QUEEN),
            Card(suit=Suit.DIAMONDS, rank=Rank.EIGHT),
            Card(suit=Suit.DIAMONDS, rank=Rank.SEVEN),
        }
        deal = Deal(players=players, bidder_index=0, trump_suit=Suit.DIAMONDS)
        trick = Trick(deal=deal, leading_player_index=0)

        trick.play(Card(suit=Suit.HEARTS, rank=Rank.KING))
        trick.play(Card(suit=Suit.DIAMONDS, rank=Rank.ACE))

        self.assertEqual(
            {
                Card(suit=Suit.DIAMONDS, rank=Rank.TEN),
                Card(suit=Suit.DIAMONDS, rank=Rank.KING),
                Card(suit=Suit.DIAMONDS, rank=Rank.QUEEN),
                Card(suit=Suit.DIAMONDS, rank=Rank.EIGHT),
                Card(suit=Suit.DIAMONDS, rank=Rank.SEVEN),
            },
            trick.legal_cards,
        )
示例#2
0
    def test_cards_can_be_compared_before_a_suit_is_led(self) -> None:
        players = [Player(), Player(), Player(), Player()]
        deal = Deal(players=players, bidder_index=0)
        trick = Trick(deal=deal, leading_player_index=0)

        # The queen should be consider higher, as we are assuming we are not
        # dealing with a trump suit, given that no trump suit was even specified yet.
        self.assertEqual(
            1,
            trick.compare_cards(Card(suit=Suit.HEARTS, rank=Rank.JACK),
                                Card(suit=Suit.HEARTS, rank=Rank.QUEEN)))

        # Unrelated cards cannot be compared properly without a trump suit or a led suit.
        self.assertEqual(
            0,
            trick.compare_cards(
                Card(suit=Suit.HEARTS, rank=Rank.JACK),
                Card(suit=Suit.SPADES, rank=Rank.ACE),
            ))

        deal.trump_suit = Suit.HEARTS

        # Now that we have a trump suit defined, the higher trump should rank higher.
        self.assertEqual(
            -1,
            trick.compare_cards(Card(suit=Suit.HEARTS, rank=Rank.JACK),
                                Card(suit=Suit.HEARTS, rank=Rank.QUEEN)))
示例#3
0
def process_players():#This method sets up players in the database so that their scores can be tracked
    if request.method == 'POST':
        player_1_Name = request.form['player1']
        player_2_Name = request.form['player2']
        player_3_Name = request.form['player3']
        player_4_Name = request.form['player4']
        tournament_Name = request.form['tournament_name']

        if (player_1_Name and player_2_Name and player_3_Name and player_4_Name) == None or (player_1_Name and player_2_Name and player_3_Name and player_4_Name) == "" or (player_1_Name and player_2_Name and player_3_Name and player_4_Name) == False:
            flash('No blank names allowed, please input 4 player names.')
            return redirect('/initiate_tournament?p1='+player_1_Name+'&p2='+player_2_Name+'&p3='+player_3_Name+'&p4='+player_4_Name+'&tname='+tournament_Name)
        else:#This adds a tournament and players to the database
            logged_in_user_id = User.query.filter_by(email=session['user']).first().id
            db.session.add(Tournament(logged_in_user_id, tournament_Name))
            db.session.commit()
            session['tournament_Id'] = Tournament.query.filter_by(name=tournament_Name).first().id

            db.session.add(Player(player_1_Name,session['tournament_Id'],logged_in_user_id))#Players are instatiated using player name from template POST request and tournament_ID session variable
            db.session.add(Player(player_2_Name,session['tournament_Id'],logged_in_user_id))
            db.session.add(Player(player_3_Name,session['tournament_Id'],logged_in_user_id))
            db.session.add(Player(player_4_Name,session['tournament_Id'],logged_in_user_id))
            db.session.commit()
            #After players have been confirmed in the DB, their name is assigned into Session variables
            player_1_Id = Player.query.filter_by(name = player_1_Name , owner_id = logged_in_user_id).first().id
            player_2_Id = Player.query.filter_by(name = player_2_Name , owner_id = logged_in_user_id).first().id
            player_3_Id = Player.query.filter_by(name = player_3_Name , owner_id = logged_in_user_id).first().id
            player_4_Id = Player.query.filter_by(name = player_4_Name , owner_id = logged_in_user_id).first().id

            session['player_1_Id'] = player_1_Id
            session['player_2_Id'] = player_2_Id
            session['player_3_Id'] = player_3_Id
            session['player_4_Id'] = player_4_Id
            return redirect('/score_input')
示例#4
0
    def test_a_player_must_follow_suit_if_possible(self) -> None:
        players = [Player(), Player(), Player(), Player()]
        deal = Deal(players=players, bidder_index=0)
        trick = Trick(deal=deal, leading_player_index=0)

        players[0].hand = {Card(suit=Suit.SPADES, rank=Rank.ACE)}
        players[1].hand = {
            Card(suit=Suit.SPADES, rank=Rank.KING),
            Card(suit=Suit.SPADES, rank=Rank.QUEEN),
            Card(suit=Suit.HEARTS, rank=Rank.KING),
        }

        trick.play(Card(suit=Suit.SPADES, rank=Rank.ACE))

        # The first player has led spades; the next player should have two legal choices.
        self.assertEqual(
            {
                Card(suit=Suit.SPADES, rank=Rank.KING),
                Card(suit=Suit.SPADES, rank=Rank.QUEEN),
            }, trick.legal_cards)

        self.assertEqual(
            True,
            Card(suit=Suit.HEARTS, rank=Rank.KING)
            in deal.players[trick.player_index_to_play].hand)
        # If the player attempts to play a different card anyway, then despite holding the card
        # in their hand, it should raise an exception.
        self.assertRaises(AssertionError, trick.play,
                          Card(suit=Suit.HEARTS, rank=Rank.KING))
示例#5
0
    def test_a_player_must_not_follow_suit_if_not_possible(self) -> None:
        players = [Player(), Player(), Player(), Player()]
        deal = Deal(players=players, bidder_index=0)
        trick = Trick(deal=deal, leading_player_index=0)

        players[0].hand = {Card(suit=Suit.SPADES, rank=Rank.ACE)}
        players[1].hand = {
            Card(suit=Suit.HEARTS, rank=Rank.KING),
            Card(suit=Suit.HEARTS, rank=Rank.QUEEN),
            Card(suit=Suit.DIAMONDS, rank=Rank.KING),
        }

        trick.play(Card(suit=Suit.SPADES, rank=Rank.ACE))

        # The next player may play any of these cards despite them not following suit.
        self.assertEqual(
            {
                Card(suit=Suit.HEARTS, rank=Rank.KING),
                Card(suit=Suit.HEARTS, rank=Rank.QUEEN),
                Card(suit=Suit.DIAMONDS, rank=Rank.KING),
            },
            trick.legal_cards,
        )

        # Playing this card should be acceptable despite it not following suit.
        trick.play(Card(suit=Suit.HEARTS, rank=Rank.KING))
示例#6
0
def init_dev_data():
    """Initializes database with data for development and testing"""
    db.drop_all()
    db.create_all()
    print("Initialized Connect 4 Database.")

    ga = Game()
    db.session.add(ga)

    p1 = Player(username="******",
                birthday=datetime.datetime.strptime('11/06/1991',
                                                    '%m/%d/%Y').date(),
                pw_hash=generate_password_hash("tow"))
    p2 = Player(username="******",
                birthday=datetime.datetime.strptime('01/14/1987',
                                                    '%m/%d/%Y').date(),
                pw_hash=generate_password_hash("twaits"))

    db.session.add(p1)
    print("Created %s" % p1.username)
    db.session.add(p2)
    print("Created %s" % p2.username)

    ga.player_one = p1
    ga.player_two = p2

    db.session.commit()
    print("Added dummy data.")
示例#7
0
文件: main.py 项目: vodopyanovas/hw
def start_game():
    os.system('cls' if os.name == 'nt' else 'clear')
    print('\nHello my friend! Let\'s play a game!')
    field = Field('new')

    print(
        'So, to play a game you need to call your friend and say me your names!\n'
    )
    p1_name = input('Tell me the name of the first player: ')
    p2_name = input('Tell me the name of the second player: ')
    player1 = Player(p1_name, 1)
    player2 = Player(p2_name, 1)

    os.system('cls' if os.name == 'nt' else 'clear')
    # turn = get_turn(player1,player2)

    print(
        '\nNow it\'s time to place your ships on a game field! And the first player will be {}\n'
        .format(player1.name))
    os.system('cls' if os.name == 'nt' else 'clear')
    #field.print_field('')
    p1_ships = create_ships(field)

    os.system('cls' if os.name == 'nt' else 'clear')
    print(
        '\nNow it\'s time to place its ships For the second player {}'.format(
            player2.name))
    input('\n\npress Enter to continue...')

    os.system('cls' if os.name == 'nt' else 'clear')
    field.print_field('')
    p2_ships = create_ships(field)
示例#8
0
文件: main.py 项目: fearsd/chess
def game_init():
    chess = GameField()
    modes = (1, 2, 3)
    mode = 9
    while mode not in modes:
        mode = int(
            input(
                'Choose mode of the game: \n1: human vs human\n2: computer vs human\n3: computer vs computer \n: '
            ))

    if mode == 1:
        name1 = input('Input name of first (white) player: ')
        name2 = input('Input name of second (black) player: ')
        white_player = Player(name1, 'white', chess)
        black_player = Player(name2, 'black', chess)
    elif mode == 2:
        name1 = input('Input name of first (white) player: ')
        name2 = input('Input name of second (black) player (computer): ')
        white_player = Player(name1, 'white', chess)
        black_player = Computer(name2, 'black', chess)
    else:
        name1 = input('Input name of first (white) player (computer): ')
        name2 = input('Input name of second (black) player (computer): ')
        white_player = Computer(name1, 'white', chess)
        black_player = Computer(name2, 'black', chess)

    return chess, white_player, black_player
示例#9
0
def init_db():
    Base.metadata.create_all(bind=engine)
    player1 = Player(name="player1")
    db_session.add(player1)
    sc = Score(rule='ガチヤグラ',
               power=1900,
               weapon='スクリュースロッシャー',
               result='WIN',
               player=player1)
    db_session.add(sc)
    sc = Score(rule='ガチエリア',
               power=1920,
               weapon='スクリュースロッシャー',
               result='WIN',
               player=player1)
    db_session.add(sc)
    player2 = Player(name="player2")
    sc = Score(rule='ガチアサリ',
               power=2100,
               weapon='スプラシューター',
               result='WIN',
               player=player2)
    db_session.add(sc)
    sc = Score(rule='ガチエリア',
               power=2320,
               weapon='スプラシューターベッチュー',
               result='WIN',
               player=player2)
    db_session.add(sc)
    db_session.commit()
示例#10
0
 def check_conditions(self):
     for event in pygame.event.get():
         self.gui_manager.process_events(event)
         if event.type == KEYDOWN:
             if event.key == K_ESCAPE:
                 return "select_player"
             elif event.key == K_RETURN:
                 inp = self.text_box.get_text()
                 if len(inp) > 0:
                     new_player = Player(name=inp)
                     GameApp.session.add(new_player)
                     return "select_player"
                 else:
                     return None 
         elif event.type == pygame.USEREVENT:
             if event.user_type == pygame_gui.UI_BUTTON_PRESSED:
                 if event.ui_element == self.cancel_button:
                     return "select_player"
                 elif event.ui_element == self.save_button:
                     inp = self.text_box.get_text()
                     if len(inp) > 0:
                         new_player = Player(name=inp)
                         GameApp.session.add(new_player)
                         return "select_player"
                     else:
                         return None
示例#11
0
    def test_overtrumping_the_opponent_is_mandatory_if_teammate_is_not_leading(
            self) -> None:
        players = [Player(), Player(), Player(), Player()]
        players[0].hand = {Card(suit=Suit.HEARTS, rank=Rank.KING)}
        players[1].hand = {Card(suit=Suit.DIAMONDS, rank=Rank.TEN)}
        players[2].hand = {Card(suit=Suit.SPADES, rank=Rank.QUEEN)}
        players[3].hand = {
            Card(suit=Suit.DIAMONDS, rank=Rank.ACE),
            Card(suit=Suit.SPADES, rank=Rank.EIGHT),
            Card(suit=Suit.SPADES, rank=Rank.JACK),
        }

        deal = Deal(players=players,
                    bidder_index=0,
                    trump_suit=Suit.SPADES,
                    rules=RuleSet.ROTTERDAM)
        trick = Trick(deal=deal, leading_player_index=0)
        trick.play(Card(suit=Suit.HEARTS, rank=Rank.KING))
        trick.play(Card(suit=Suit.DIAMONDS, rank=Rank.TEN))
        trick.play(Card(suit=Suit.SPADES, rank=Rank.QUEEN))

        self.assertEqual({
            Card(suit=Suit.SPADES, rank=Rank.JACK),
        }, trick.legal_cards)

        # No matter whether this game is Rotterdam or Amsterdam style, the trump is the only legitimate option.
        deal.rules = RuleSet.AMSTERDAM
        self.assertEqual({
            Card(suit=Suit.SPADES, rank=Rank.JACK),
        }, trick.legal_cards)
示例#12
0
    def test_overtrumping_your_teammate_is_still_mandatory_in_amsterdam_deals_if_it_is_the_led_suit(
            self) -> None:
        players = [Player(), Player(), Player(), Player()]
        players[0].hand = {Card(suit=Suit.HEARTS, rank=Rank.KING)}
        players[1].hand = {Card(suit=Suit.SPADES, rank=Rank.TEN)}
        players[2].hand = {
            Card(suit=Suit.HEARTS, rank=Rank.NINE),
            Card(suit=Suit.HEARTS, rank=Rank.QUEEN),
            Card(suit=Suit.DIAMONDS, rank=Rank.ACE),
        }
        deal = Deal(players=players,
                    bidder_index=0,
                    trump_suit=Suit.HEARTS,
                    rules=RuleSet.ROTTERDAM)
        trick = Trick(deal=deal, leading_player_index=0)

        trick.play(Card(suit=Suit.HEARTS, rank=Rank.KING))
        trick.play(Card(suit=Suit.SPADES, rank=Rank.TEN))

        # Despite the fact that the teammate is leading the trick so far, playing a lower trump
        # or any other card is not allowed: when following suit in trump, over-trumping is still
        # mandatory.
        self.assertEqual({
            Card(suit=Suit.HEARTS, rank=Rank.NINE),
        }, trick.legal_cards)
示例#13
0
    def test_overtrumping_your_teammate_is_not_mandatory_in_amsterdam_deals_if_teammate_is_winning(
            self) -> None:
        players = [Player(), Player(), Player(), Player()]
        players[0].hand = {Card(suit=Suit.HEARTS, rank=Rank.KING)}
        players[1].hand = {Card(suit=Suit.SPADES, rank=Rank.TEN)}
        players[2].hand = {Card(suit=Suit.HEARTS, rank=Rank.NINE)}
        players[3].hand = {
            Card(suit=Suit.DIAMONDS, rank=Rank.ACE),
            Card(suit=Suit.SPADES, rank=Rank.EIGHT),
            Card(suit=Suit.SPADES, rank=Rank.JACK),
        }

        deal = Deal(players=players,
                    bidder_index=0,
                    trump_suit=Suit.SPADES,
                    rules=RuleSet.AMSTERDAM)
        trick = Trick(deal=deal, leading_player_index=0)
        trick.play(Card(suit=Suit.HEARTS, rank=Rank.KING))
        trick.play(Card(suit=Suit.SPADES, rank=Rank.TEN))
        trick.play(Card(suit=Suit.HEARTS, rank=Rank.NINE))

        # Playing a higher trump is legal, but not necessary. The player may also drop the ace.
        # Note however that playing a lower trump is still illegal.
        self.assertEqual(
            {
                Card(suit=Suit.DIAMONDS, rank=Rank.ACE),
                Card(suit=Suit.SPADES, rank=Rank.JACK),
            }, trick.legal_cards)

        # In an Amsterdam deal, the player is forced to play the higher trump card.
        deal.rules = RuleSet.ROTTERDAM
        self.assertEqual({
            Card(suit=Suit.SPADES, rank=Rank.JACK),
        }, trick.legal_cards)
示例#14
0
def main():
    player1 = Player('Jekyll')
    player2 = Player('Hyde')
    try:
        gameEngine = GameEngine(2, GameType.value_match)
        gameEngine.play((player1, player2))
    except SnapException as ex:
        print ex
示例#15
0
def addPlayer(game_id, mdn, player_alias):
    newPlayer = Player()
    newPlayer = Player(game_id, mdn, 0, player_alias)
    db.session.add(newPlayer)
    db.session.commit()
    new_player = db.session.query(Player).filter(Player.mdn == mdn).first()
    #db.session.close()
    return new_player.id
示例#16
0
        def play_bad_card() -> None:
            players = [Player(), Player(), Player(), Player()]
            deal = Deal(players=players, bidder_index=0)
            trick = Trick(deal=deal, leading_player_index=0)
            players[0].hand = {Card(suit=Suit.SPADES, rank=Rank.ACE)}

            # The player does not actually have this card; it should throw AssertionError
            trick.play(Card(suit=Suit.HEARTS, rank=Rank.ACE))
示例#17
0
    def test_winning_card_detection_returns_none_if_no_card_was_played(
            self) -> None:
        players = [Player(), Player(), Player(), Player()]
        deal = Deal(players=players, bidder_index=0, trump_suit=Suit.DIAMONDS)
        trick = Trick(deal=deal, leading_player_index=0)

        self.assertEqual(None, trick.winning_card)
        self.assertEqual(None, trick.winning_card_index)
示例#18
0
def players():
    conn, cursor = db.connect()
    p1 = Player(test_user_id, "erlend", 1000)
    p2 = Player(pingpongbot_id, "pingpong", 1000)
    db.create_player(cursor, p1)
    db.create_player(cursor, p2)
    conn.commit()
    conn.close()
    yield p1, p2
示例#19
0
 def test_multiple_players(self):
     import copy
     player1 = Player("player1")
     player2 = Player("player2")
     service = GameService(10, 10, 5, [player1, player2])
     service.add_player_to_game([player2])
     service.set_board()
     #All players should share the same initial game board
     self.assertEqual(service._game._current_player, player2)
示例#20
0
文件: shinobi.py 项目: meszka/shinobi
 def delete(self, gid, pid):
     game = Game(gid)
     owner = game.get_owner()
     player = Player(gid, pid)
     user = player.get_user()
     auth = request.authorization
     if not (authorize(auth, owner) or authorize(auth, user)):
         return auth_response()
     Player(gid, pid).delete()
     return '', 204
示例#21
0
    def test_a_deck_cannot_be_dealt_if_not_evenly(self) -> None:
        deck = Deck()
        players = [Player(), Player(), Player()]

        # What we are testing is the scenario where the deck's cards cannot
        # be dealt evenly among the players, so we must assert it.
        self.assertNotEqual(len(deck.cards) % len(players), 0)

        # In this scenario, the method should throw a ValueError.
        self.assertRaises(ValueError, deck.deal, players)
示例#22
0
    def test_a_deck_can_be_dealt(self) -> None:
        deck = Deck()
        players = [Player(), Player(), Player(), Player()]
        deck.deal(players)

        # The deck is fully depleted
        self.assertEqual(0, len(deck.cards))
        for player in players:
            # Each player has the required amount of cards
            self.assertEqual(8, len(player.hand))
示例#23
0
def main():
    RpsGame.print_header()
    name = get_player_name()

    player1 = Player(name)
    player2 = Player('Computer')

    game = RpsGame(player1, player2)

    game.start()
示例#24
0
    def test_a_deal_asks_for_trump_suit_when_started(self) -> None:
        players = [Player(), Player(), Player(), Player()]

        suit_identifier: str
        suit: Suit
        for (suit_identifier, suit) in Suit.suits().items():
            with patch("builtins.input", return_value=suit_identifier):
                deal = Deal(players=players, bidder_index=0)
                deal.initialize()

                self.assertEqual(deal.trump_suit, suit)
 def setUp(self):
     self.player_one = Player("Gosho", 50, 2, 16)
     self.player_two = Player("Misho", 50, 2, 16)
     self.player_three = Player("Misho", 20, 2, 16)
     self.player_four = Player("Misho", 0, 2, 16)
     self.cards = [GoodCard(), BadCard(), TripCard()]
     self.field = [[{
         1: Cell(0, 0, self.cards)
     }, {
         2: Cell(0, 1, self.cards)
     }]]
     self.levels = {"SMALL": (1, 2), "MEDIUM": (2, 3), "LARGE": (3, 4)}
示例#26
0
    def setUp(self):
        # set up the test DB
        self.db = tested_db
        self.db.create_all()
        self.db.session.add(City(id=1, city_name="montreal", country="canada"))
        self.db.session.add(Team(id=2, team_name="canadiens", association="east", division="atlantic", city_id=1))
        self.db.session.add(Player(id=1, name="Maurice Richard", team_id=1))
        self.db.session.add(Player(id=2, name="PK Subban", team_id=1))
        self.db.session.add(Player(id=3, name="Paul Byron", team_id=1))
        self.db.session.commit()

        self.app = tested_app.test_client()
示例#27
0
def main():
    # デッキを作成
    deck = Deck()
    card_nums = [
        'A', '2', '3', '4', '5', '6', '7', '8', '9', '10', 'J', 'Q', 'K',
        'Joker'
    ]
    card_ranks = [12, 13, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 14]
    card_suits = ['spade', 'heart', 'diamond', 'club']
    card_mapping = {}
    for (num, rank) in zip(card_nums, card_ranks):
        card_mapping[num] = rank

    for rank in card_ranks[:13]:  # デッキにJoker含むカード54枚を加える
        for suit in card_suits:
            card = Card(suit=suit, rank=rank)
            deck.cards.append(card)

    deck.cards.append(Card(suit='*', rank=card_mapping['Joker']))
    deck.cards.append(Card(suit='*', rank=card_mapping['Joker']))
    # print(len(deck.cards))
    # for card in deck.cards:
    #     print(card)

    # プレイヤー追加と初期設定
    player1 = Player(name='player1')
    player2 = Player(name='player2')
    player1.doubt_pct = 0.35
    player2.doubt_pct = 0.2

    # 20ゲーム x 50回試行する
    result_p1 = []
    for j in range(10):
        datum = []
        for i in range(20):
            data = play_game(player1, player2, deck)
            datum.append([data[0].name, data[1]])

        print('-' * 100)
        print('-' * 100)
        print('-' * 100)
        # スコアを集計
        p1_score, p2_score = utils.calc_data(datum)
        result_p1.append(p1_score)
        print('player1のスコア: {} \nplayer2のスコア: {}'.format(p1_score, p2_score))

    df = pd.DataFrame(data=result_p1, columns=['score'])
    print('##' * 50)
    print('合計: {} \n平均: {} \n分散: {}'.format(df['score'].sum(),
                                            df['score'].mean(),
                                            df['score'].var()))
    df.plot()
    plt.show()
示例#28
0
    def setup(self):

        num_players = int(input('Num Players: '))
        for i in range(num_players):
            player = Player(name='Player %d' % (i + 1))
            self.players.append(player)

        self.analyzer = GameStatusAnalyzer(players=self.players)

        # Set the hidden state of the game
        from random import randint as r
        suspects = SUSPECTS.copy()
        weapons = WEAPONS.copy()
        rooms = ROOMS.copy()

        # Create solution
        solution = {
            CardType.SUSPECT: suspects.pop(r(0,
                                             len(suspects) - 1)),
            CardType.WEAPON: weapons.pop(r(0,
                                           len(weapons) - 1)),
            CardType.ROOM: rooms.pop(r(0,
                                       len(rooms) - 1)),
        }
        self.solution = solution

        # Deal hands
        hidden_players = [
            Player('hidden ' + str(i + 1)) for i in range(num_players)
        ]

        while len(suspects) > 0:
            player = hidden_players[r(0, len(hidden_players) - 1)]
            card = suspects.pop(r(0, len(suspects) - 1))
            player.known_cards[CardType.SUSPECT].append(card)

        while len(weapons) > 0:
            player = hidden_players[r(0, len(hidden_players) - 1)]
            card = weapons.pop(r(0, len(weapons) - 1))
            player.known_cards[CardType.WEAPON].append(card)

        while len(rooms) > 0:
            player = hidden_players[r(0, len(hidden_players) - 1)]
            card = rooms.pop(r(0, len(rooms) - 1))
            player.known_cards[CardType.ROOM].append(card)

        self.hidden_players = hidden_players

        for player in hidden_players:
            PlayerDisplayer().display_player(player)

        self.suggesting_player_index = 0
示例#29
0
    def __init__(self, configuration):
        self.board = Board()

        player1 = Player(self, configuration["name_player1"],
                         configuration["intelligence_player1"])

        player2 = Player(self, configuration["name_player2"],
                         configuration["intelligence_player2"])

        self.players = (player1, player2)
        self.active_player = player1

        self.state = self.STATES["WAIT_SELECTION"]
示例#30
0
def viewPlayers():
    player = Player()
    selectedItems = ['', '', '', '', '', '']
    playerTeams = []
    playerEvents = []
    kills = 0
    deaths = 0
    kd = 0
    mapRecord = [0, 0]
    results = stats.players.head(0)
    results = results.set_index(['Match ID', 'Map ID'])
    length = results.shape[0]
    if request.method == "POST":
        player = Player(request.form.get("player"))
        team = request.form.get("team")
        opponent = request.form.get("opponent")
        event = request.form.get("event")
        mode = request.form.get("mode")
        map = request.form.get("map")

        selectedItems[0] = player.name
        selectedItems[1] = team
        selectedItems[2] = opponent
        selectedItems[3] = event
        selectedItems[4] = mode
        selectedItems[5] = map

        playerTeams = player.getPlayerTeams()
        playerEvents = player.getPlayerEvents()
        results = stats.getPlayers(player.name, team, opponent, event, mode,
                                   map)
        # don't show Match ID and Map ID columns
        results = results.set_index(['Match ID', 'Map ID'])

        results.dropna(how='all', axis=1, inplace=True)
        kills, deaths, kd = player.getPlayerKD(results)
        mapRecord[0], mapRecord[1] = player.getPlayerMapRecord(data=results)
        length = results.shape[0]
    return render_template(
        "viewPlayers.html",
        player=player,
        stats=stats,
        tables=[results.to_html(classes="data", index=False)],
        playerTeams=playerTeams,
        playerEvents=playerEvents,
        selectedItems=selectedItems,
        kills=kills,
        deaths=deaths,
        kd=kd,
        length=length,
        mapRecord=mapRecord)