예제 #1
0
파일: __init__.py 프로젝트: oonray/COHB
 def __init__(self, names, server):
     """Holds the current Black card"""
     self.currentCard = {"text": "", "pick": 0}
     self.serverid = server
     self.serverName = ""
     """The b & w decks"""
     self.black = Deck("blackCards")
     self.white = Deck("whiteCards")
     """Holds the current player to do an action"""
     self.currentPlayer = Player("", self.white)
     """A list of all players"""
     self.players = {}
     for i in names:
         self.players[i] = Player(i, self.white)
     """A list of all the player names, wil act as indexing"""
     self.playerNames = []
     """Holds All submitted Cards"""
     self.submitted = {}
     self.submittedCards = []
     """
     Geeeeeet ready!!!!!!
     Our champions wil battle with intence ferocity!
     """
     """No open world im afraid"""
     self.choices = {1: self.checkCards, 2: self.submit}
예제 #2
0
 def __init__(self):
     self.turn = 1
     self.whitePlayer = Player(ChessConstants.COLOR[0],
                               self.instantiateAll(ChessConstants.COLOR[0]))
     self.blackPlayer = Player(ChessConstants.COLOR[1],
                               self.instantiateAll(ChessConstants.COLOR[1]))
     self.newBoard = Board(self.whitePlayer.piecesAlive,
                           self.blackPlayer.piecesAlive)
     self.isGameOver = False
     self.loser = ""
예제 #3
0
 def setUp(self):
     self.players=[]
     player1=Player("Messi", "Barcelona", True, 100)
     player2=Player("Ronaldo", "Madrid", True, 80)
     player3=Player("Maradona", "Barcelona", True, 100)
     player4=Player("Tevez", "Boca", False, 50)
     self.players.append(player1)
     self.players.append(player2)
     self.players.append(player3)
     self.players.append(player4)
     self.teams=Team.create_teams(self.players)
예제 #4
0
파일: game.py 프로젝트: Presac/Tic-Tac-Toe
def chooseGamemode():
    """
    Function to choose the game mode and difficulty.

    :returns: A list of the two players, either ai or player.
    """

    print('What do you want to do? Pick from the options below.\n'
          '1: Play against another player.\n'
          '2: Play against the computer.\n'
          '3: Smart (starting) against stupid computer.\n'
          '4: Stupid (starting) against Smart computer.\n'
          '5: Smart against smart computer.\n'
          '0: Exit')
    val = input('Choose an option: ')
    print()

    if val == '0':
        print('Hope to see you again :)')
        return 'End'
    elif val == '1':
        player1 = Player('Player 1', -1)
        player2 = Player('Player 2', 1)
    elif val == '2':
        print('Which difficulty do you want to play against?\n'
              '0: Easy.\n'
              '1: Hard.\n'
              '2: Impossible')
        difficulty = input('(default: 0): ')

        if difficulty not in ['0', '1', '2']:
            difficulty = '0'
            print('Defaultet to 0: Easy')

        print()

        player1 = Player('Player 1', -1)
        player2 = AI('AI', 1, difficulty)
    elif val == '3':
        player1 = AI('Smart AI', -1, '1')
        player2 = AI('Stupid AI', 1, '0')
    elif val == '4':
        player1 = AI('Stupid AI 1', -1, '0')
        player2 = AI('Smart AI 2', 1, '1')
    elif val == '5':
        player1 = AI('Smart AI 1', -1, '1')
        player2 = AI('Smart AI 2', 1, '1')
    else:
        print('Not an option.')
        return None

    return [player1, player2]
예제 #5
0
    def __init__(self, gui, game, players=[Player('X'), Player('O')]):
        self.game = game
        self.gui = gui
        self.players = players
        self.current_player_number = 0
        self.winner = None

        for player in self.players:
            if type(player) == Learner:
                player.history = {}

        if self.gui:
            self.gui.start()
예제 #6
0
    def test_compare_teams(self):
        player1=Player("Messi", "Barcelona", True, 100)
        player2=Player("Ronaldo", "Madrid", True, 80)
        player3=Player("Maradona", "Barcelona", True, 100)
        player4=Player("Tevez", "Boca", False, 50)

        newPlayers=[]
        #I add the players in diferent orders
        newPlayers.append(player2)        
        newPlayers.append(player1)
        newPlayers.append(player4)        
        newPlayers.append(player3)
        self.assertEqual(str(self.teams),str(Team.create_teams(newPlayers)))
예제 #7
0
    def init_game(self):
        pygame.init()
        self.clock = pygame.time.Clock()

        self.graphics.init()
        self.players = []
        self.players.append(Player.Player("Lucas"))
        self.players.append(Player.Player("Charlie"))
        self.players[0].position = pygame.math.Vector2(50, 50)
        self.players[1].position = pygame.math.Vector2(950, 950)

        self.map = pygame.image.load(
            'F:\\Workspace\\Hungry Lions Battle\\testmap.png').convert()
예제 #8
0
def main(decks):
    d = Deck(decks)
    p = Player(d)
    if not p.check_score():
        return
    h = Dealer(d)
    if not h.check_score():
        return
    p.hit(d)
    h.hit(d)
    if p.score > h.score:
        print("Player Wins!")
    else:
        print("Dealer Wins")
    return
예제 #9
0
 def test_is_winner_negative(self):
     player = Player('X')
     row = column = 1
     self.tictactoe.play(row, column, player)
     self.assertFalse(self.tictactoe.is_winner(player))
     print('test_is_winner_negative:')
     self.tictactoe.print_board()
예제 #10
0
    def test_learn_single(self):
        self.learner = Learner('X')
        self.other_player = Player('O')
        self.tictactoe = TicTacToe()

        fields = [(0, 0), (0, 1), (0, 2)]

        for field in fields:
            self.tictactoe.play(*field, self.learner)

        self.assertEqual(fields, self.tictactoe.is_winner(self.learner))
        self.learner.learn(self.tictactoe, 100, self.learner)
        print(self.learner.rewards)

        self.tictactoe = TicTacToe()
        while (self.tictactoe.available_moves()
               and not self.tictactoe.is_winner(self.learner)
               and not self.tictactoe.is_winner(self.other_player)):
            self.tictactoe.play(*self.learner.next_move(self.tictactoe),
                                self.learner)

        print(self.tictactoe.board)

        self.assertFalse(self.tictactoe.is_winner(self.other_player))
        self.assertEqual(fields, self.tictactoe.is_winner(self.learner))
예제 #11
0
def add_new_player(human):
    Globals.PLAYERS.append(
        Player(
            Globals.TEMP_VARS['avail_names'].pop(
                randrange(len(Globals.TEMP_VARS['avail_names']))),
            Globals.TEMP_VARS['avail_colors'].pop(
                randrange(len(Globals.TEMP_VARS['avail_colors']))), human))
예제 #12
0
    def test_learn_single_starting(self):
        self.learner = Learner()
        self.other_player = Player()
        self.tictactoe = TicTacToe()

        fields = [(0, 0), (0, 1), (0, 2)]
        other_fields = [(1, 0), (1, 1)]

        for field in range(len(fields)):
            self.tictactoe.play(*fields[field], self.learner)
            try:
                self.tictactoe.play(*other_fields[field], self.other_player)
            except (IndexError):
                pass
            self.learner.look(self.tictactoe)

        self.assertEqual(fields, self.tictactoe.is_winner(self.learner))
        self.learner.learn(self.tictactoe, 100, self.learner)
        print(self.learner.rewards)

        self.tictactoe = TicTacToe()
        while (self.tictactoe.available_moves()
               and not self.tictactoe.is_winner(self.learner)
               and not self.tictactoe.is_winner(self.other_player)):
            self.tictactoe.play(*self.learner.next_move(self.tictactoe),
                                self.learner)
            if (other_fields):
                self.tictactoe.play(*other_fields.pop(0), self.other_player)

        print(self.tictactoe.board)

        self.assertFalse(self.tictactoe.is_winner(self.other_player))
        self.assertEqual(fields, self.tictactoe.is_winner(self.learner))
예제 #13
0
    def server_register_player(self,
                               name,
                               color,
                               imgindex,
                               netid,
                               aiship=None):
        """
        Called by the server when a new client registration message is received
        Has all information pertaining to a player entity

        Parameters:
            ship: Ship object - used to register AI Ships to the game world
        """
        if not self._players.has_key(netid):
            if (self.__started
                    and self.__allowafterstart) or not self.__started:
                # create new player
                #
                p = Player(name, color, imgindex, netid,
                           self._primary_victory_high)
                self.player_added(p, BasicGame._ADD_REASON_REGISTER_)
                self._players[netid] = p

                if aiship != None:
                    self.__aiships[netid] = aiship

                if self.__autostart:
                    self._game_add_ship_for_player(netid, roundstart=True)

                logging.info("Registering Player: %s %d", name, netid)

                return True

        return False
예제 #14
0
    def start_game(self,
                   player_count=3,
                   starting_money=1000,
                   starting_bid=None,
                   small_blind=None,
                   linear=True,
                   increasing=0,
                   inc_per_x_rounds=3):
        players = [
            Player([], f'Player {x}', starting_money)
            for x in range(player_count)
        ]
        if small_blind == None:
            small_blind = random.randint(0, player_count - 1)
        turn = Turn(small_blind)
        playing = True
        round_count = 0
        while playing:
            self.start_round(players, turn)

            if round_count != 0 and round_count % inc_per_x_rounds == 0:
                if linear:
                    starting_bid += increasing
                elif increasing != 0:
                    starting_bid *= increasing
            round_count += 1
            if len(players) < 2:
                playing = False
        print(
            f'Congratulations {players[0].name}, you won and are taking home ${players[0].bank}!'
        )
예제 #15
0
 def test_play_retrieve(self):
     player = Player('X')
     row = column = 1
     self.tictactoe.play(row, column, player)
     self.assertIsNotNone(self.tictactoe.retrieve(row, column))
     self.assertEqual(self.tictactoe.retrieve(row, column), 'X')
     print('test_play_retrieve:')
     self.tictactoe.print_board()
예제 #16
0
 def test_available_moves_none(self):
     player = Player('X')
     for row in range(self.tictactoe.board_size()):
         for column in range(self.tictactoe.board_size()):
             self.tictactoe.play(row, column, player)
     self.assertFalse(self.tictactoe.available_moves())
     print('test_available_moves_none:')
     self.tictactoe.print_board()
예제 #17
0
 def test_play_retrieve_boundary(self):
     player = Player('X')
     row = column = self.tictactoe.board_size() - 1
     self.tictactoe.play(row, column, player)
     self.assertIsNotNone(self.tictactoe.retrieve(row, column))
     self.assertEqual(self.tictactoe.retrieve(row, column), player.name)
     print('test_play_retrieve_boundary:')
     self.tictactoe.print_board()
예제 #18
0
 def test_available_moves(self):
     player = Player('X')
     test_position = (1, 1)
     self.tictactoe.play(*test_position, player)
     available_moves = self.tictactoe.available_moves()
     self.assertTrue(available_moves)
     self.assertNotIn(test_position, available_moves)
     print('test_available_moves:')
     self.tictactoe.print_board()
예제 #19
0
 def test_is_winner_diagonal2(self):
     player = Player('X')
     fields = [(0, 2), (1, 1), (2, 0)]
     for field in fields:
         self.tictactoe.play(*field, player)
     self.assertTrue(self.tictactoe.is_winner(player))
     self.assertEqual(fields, self.tictactoe.is_winner(player))
     print('test_is_winner_diagonal2:')
     self.tictactoe.print_board()
예제 #20
0
 def test_is_winner_column(self):
     player = Player('X')
     column = 0
     fields = [(row, column) for row in range(self.tictactoe.board_size())]
     for field in fields:
         self.tictactoe.play(*field, player)
     self.assertTrue(self.tictactoe.is_winner(player))
     self.assertEqual(fields, self.tictactoe.is_winner(player))
     print('test_is_winner_column:')
     self.tictactoe.print_board()
예제 #21
0
    def main(self):

        self.canvas.pack()
        self.img = PhotoImage(width=self.WIDTH, height=self.HEIGHT)
        self.canvas.create_image((self.WIDTH / 2, self.HEIGHT / 2), image=self.img, state="normal")
        one = Functions.numberPicker()
        two = Functions.numberPicker()
        three = Functions.numberPicker()
        four = Functions.numberPicker()
        five = Functions.numberPicker()
        six = Functions.numberPicker()
        x = round(self.WIDTH / 2)
        y = round(self.HEIGHT / 2)

                # button1 = Button(window, text = "Restart", command = os.system('C:\Users\s7840363\PycharmProjects\untitled\venv\Scripts\python.exe C:/Users/s7840363/PycharmProjects/untitled/Players.py'))
        # button1.pack(side='left', padx=10)

        self.map = [['#000000' for i in range(self.HEIGHT)] for j in range(self.WIDTH)]
        for i in range(0, 100000):
            b = random.randint(0, 1)
            c = random.randint(0, 1)
            if b == 0:
                x = x + 1
            else:
                x = x - 1
            if c == 0:
                y = y + 1
            else:
                y = y - 1

            if x > self.WIDTH - 1:
                x = self.WIDTH - 1
            if x < 0:
                x = 1
            if y > self.HEIGHT - 1:
                y = self.HEIGHT - 1
            if y < 0:
                y = 1

            if i == 0:
                playerStart = (x, y)

            a = Functions.sixPick(one, two, three, four, five, six)
            self.img.put(a, (abs(x), abs(y)))
            self.map[x][y] = a

        self.goal = [x, y]
        self.canvas.create_line(self.goal[0] + 15, self.goal[1] + 15, self.goal[0], self.goal[1], fill='white', width=2,
                                arrow=LAST)
        player = Player(playerStart[0], playerStart[1], self)
        #player = Player(x, y, self)
        self.window.bind("<KeyPress>", player.movementCheck)
        self.window.focus_set()
        r = self.redirector()
        self.window.mainloop()
예제 #22
0
파일: gui.py 프로젝트: Presac/Tic-Tac-Toe
    def startGame(self):
        """
        Gets the mode and difficulty from the dropdown menues and sets the players.
        Starts the game loop to handle a possible ai.
        """
        mode = self.OPTIONS[self.var_mode.get()]
        diff = self.DIFFICULTY[self.var_diff.get()]

        if mode == 1:
            player1 = Player('Player 1', -1)
            player2 = Player('Player 2', 1)
        elif mode == 2:
            player1 = Player('Player 1', -1)
            player2 = AI('AI', 1, diff)
        elif mode == 3:
            player1 = AI('Smart AI', -1, 1)
            player2 = AI('Stupid AI', 1, 0)
        elif mode == 4:
            player1 = AI('Stupid AI 1', -1, 0)
            player2 = AI('Smart AI 2', 1, 1)
        elif mode == 5:
            player1 = AI('Stupid AI 1', -1, 0)
            player2 = AI('Smart AI 2', 1, 1)
        else:  # mode == '6':
            player1 = AI('Ultra AI 1', -1, 2)
            player2 = AI('Ultra AI 2', 1, 2)

        # Reset the board state
        self.board.resetBoard()
        self.players = [player1, player2]
        self.player_iterator = self.toggleValue()

        self.current_player = next(self.player_iterator)

        self.createGameGrid(self.fr_gamegrid)
        self.lbl_curr_player['text'] = f'Current player: {self.players[self.current_player].name} ' \
            f'({self.board.signs[self.players[self.current_player].sign]})'

        self.game_loop()
예제 #23
0
    def test_available_moves_border(self):
        player = Player('X')
        for row in range(self.tictactoe.board_size() - 1):
            for column in range(self.tictactoe.board_size() - 1):
                self.tictactoe.play(row, column, player)

        available_moves = self.tictactoe.available_moves()

        for position in range(self.tictactoe.board_size()):
            self.assertIn((position, self.tictactoe.board_size() - 1),
                          available_moves)
            self.assertIn((self.tictactoe.board_size() - 1, position),
                          available_moves)
        print('test_available_moves_border:')
        self.tictactoe.print_board()
예제 #24
0
def play_game(p1: Player, p2: Player, board: ChessBoard):
    p1.reset_game()
    p2.reset_game()
    cur_player = 0
    quit_game = False
    while True:
        board.display_board()
        if quit_game:
            break
        if cur_player == 0:
            quit_game = p1.move(board)
        else:
            quit_game = p2.move(board)
        cur_player = 1 - cur_player  # switch whose turn it is
        print("")
예제 #25
0
    def __init__(self, noplayers, initial_stake):
        self.players = []
        self.dealer = Player("Dealer", 10000)
        self.deck = Deck()
        self.deck.shuffle()
        cards = self.deck.deal(2)
        dealerHand = Hand()
        dealerHand.add_cards(cards)
        self.dealer.initialHand(dealerHand)

        for i in range(0, noplayers):
            player = Player("Player" + str(i + 1), initial_stake)
            cards = self.deck.deal(2)
            playerHand = Hand()
            playerHand.add_cards(cards)
            player.initialHand(playerHand)
            self.players.append(player)
        print_all_hands(self.dealer, self.players)
        self.play_rounds()
예제 #26
0
 def test_add_one_player(self):
     player=Player("Marcos","No One",True,100)
     for team in self.teams:
         self.assertEqual(False,team.add_payer(player))
예제 #27
0
import numpy as np
from Players import Player


class QPlayer(Player):
    # https://towardsdatascience.com/simple-reinforcement-learning-q-learning-fcddc4b6fe56
    # https://www.learndatasci.com/tutorials/reinforcement-q-learning-scratch-python-openai-gym/
    def __init__(self,
                 stack=10_000,
                 count=0,
                 eps=0.2,
                 alpha=0.1,
                 gamma=0.9,
                 load=False,
                 update=True):
        Player.__init__(self, name='Q', stack=stack, count=count)
        self.eps = eps  # percentage of exploration
        self.alpha = alpha  # learning rate
        self.gamma = gamma  # discount factor, typically 0.8-0.99
        self.actions = [0, 1]  # 0: Stand, 1: Hit
        self.offset = 3
        self.load = load
        self.update = update
        if self.load:
            self.Q = np.load(self.load)
        else:
            self.Q = np.zeros((10, 20, 2))

    def ExploreOrExploit(self):
        d, t = self.GetState()
        if np.random.uniform(0., 1.) < self.eps:
예제 #28
0
def create_players_list():
    Globals.PLAYERS = [
        Player(Globals.SETTINGS['pl_name'], Globals.SETTINGS['pl_color'], True)
    ]
예제 #29
0
파일: Combat.py 프로젝트: Tmazik/DaK
# -*- coding: utf-8 -*-
"""
Created on Thu Dec  5 13:01:41 2019

@author: Mazurka
"""

from Players import Player
import random as rn

P1 = Player(1)
P2 = Player(2)
P3 = Player(3)
P4 = Player(4)


def Combat_round(Attacker, Defender):
    print("Hráč", Attacker.getname(), "útočí na hráče", Defender.getname())
    A_damage = Attacker.getdamage()
    D_hp = Defender.gethp()
    D_hp -= A_damage
    print("Hráči", Defender.getname(), "zbývá", D_hp, "životů")
    return D_hp


def Combat(LeftSideList, RightSideList):
    L = LeftSideList
    R = RightSideList
    try:
        if isinstance(L, list):
            pass
예제 #30
0
파일: Gui.py 프로젝트: andreaschuch/games
        else:
            print('Try again!')
            return None

    def play_command(self, row, column, player):
        success = self.game.play(row=row, column=column, player=player)
        os.system('cls')
        self.game.print_board()
        return success

    def game_over(self, winner=None):
        if winner:
            print("Congratulations {}!".format(winner.name))
        else:
            print("It's a draw!")


if __name__ == '__main__':
    game = TicTacToe()
    player = Player()
    gui = KtinterGui(game)
    gui.start()
    move1 = (1, 1)
    gui.game.play(*move1, player)
    gui.play_view(*move1, player)

    move2 = gui.next_move(player)
    gui.play_view(*move2, player)

    gui.game_over()
    gui.game_over(player)