def test_human_player_ask_for_barrel_and_winner(self): def delegate(player): return True def delegate2(player): return False test_player = player.HumanPlayer('www') i = 0 for line in range(3): for pos in range(1, 91): i += 1 if i < 5: self.assertFalse(test_player.is_winner()) test_player.ask_for_barrel(barrel.Barrel(pos), delegate) self.assertEqual(test_player.card.amount_num(), 0) self.assertTrue(test_player.is_winner()) test_player = player.HumanPlayer('www') i = 0 for line in range(3): for pos in test_player.card.lines[line]: i += 1 if i < 5: self.assertFalse(test_player.is_winner()) if isinstance(pos, int): test_player.ask_for_barrel(barrel.Barrel(int(pos)), None) self.assertEqual(test_player.card.amount_num(), 0) self.assertTrue(test_player.is_winner()) test_player = player.HumanPlayer('www') i = 0 for line in range(3): for pos in range(1, 91): i += 1 if i < 5: self.assertFalse(test_player.is_winner()) test_player.ask_for_barrel(barrel.Barrel(pos), delegate2) self.assertEqual(test_player.card.amount_num(), 15) self.assertFalse(test_player.is_winner())
def game(amount_player_human, amount_player_computer): print('Начинаем игру') list_players = [] for n_player in range(amount_player_human): player = pl.HumanPlayer(f'{n_player+1}') list_players.append(player) for n_player in range(amount_player_computer): player = pl.ComputerPlayer(f'{n_player+1}') list_players.append(player) random.shuffle(list_players) print() print( 'Внимание!!! Порядок ходов игроков задается сейчас в произвольном порядке' ) print() print('Игроки и их карточки:') for player in list_players: player.print_card() print() bag = bg.Bag() print() print('*** ПОЕХАЛАЛИ ***') print() while True: barrel = bag.get_barrel() if barrel is None: print('Бочонков больше нет. Игра окончена') return print( f'Новый бочонок: {barrel.get_num()} (осталось {bag.get_count()})') for player in list_players: player.print_card() print() for player in list_players: ret = player.ask_for_barrel(barrel, delegate_ask) if not ret: print(f'{player.name} - ошибка. Вы проиграли Игра Окончена') return if player.is_winner(): print(f'{player.name} - Вы выиграли') return print() print('*** следующий раунд ***') print()
def getPlayers(playerType, verbosity): baselinePlayer = player.SimpleCPUPlayer(verbosity) if playerType == 'random': return player.RandomCPUPlayer(verbosity), baselinePlayer elif playerType == 'human': return player.HumanPlayer(verbosity), baselinePlayer elif playerType == 'simple': return player.SimpleCPUPlayer(verbosity), baselinePlayer elif playerType == 'reflex': return player.ReflexCPUPlayer(verbosity), baselinePlayer
def create_player(self, player_type, shape): if player_type == 0: return player.HumanPlayer(shape, self.gui) elif player_type == 1: return player.RandomPlayer(shape) elif player_type == 2: return player.SmartPlayer(shape) elif player_type == 3: return player.SmartestPlayer(shape) elif player_type == 4: return player.PrunePlayer(shape)
def do_init_game(self, arg): if arg == '': board_size = 3 else: board_size = int(arg) print('Creating board of size {}'.format(board_size)) player_1_name = input('Nought Player Name (player_1): ') player_2_name = input('Cross Player Name (player_2: ') if len(player_1_name) == 0: player_1_name = 'player_1' if len(player_2_name) == 0: player_2_name = 'player_2' self._nought_player = player.HumanPlayer(player_1_name) self._cross_player = player.HumanPlayer(player_2_name) print('{} versus {}'.format(self.nought_player.name, self.cross_player.name)) self._board = board.Board(size=board_size)
def play_game(players=None): """Play until the game ends with a list of players""" if players is None: players = [player.HumanPlayer(name) for name in ('doug', 'matt')] win = None colors = ['yellow', 'purple', 'blue'] g = Game(players, colors) while not win: win = g.round() print win #g.stateviz.plot_states() return win
def start(self): # Start Loop while self._prompt_newgame(): self.log.info('Starting new game') self.board = board.Board(config.board_size) if self.ai_player: self.player = player.AIPlayer(self.board) else: self.player = player.HumanPlayer(self.board) self.gameover = False self.speed = config.speed self.reset_food() self._loop()
def __init__(self, number_of_colors, height, width, game_type, save_images_suffix=False): self.number_of_cells = height * width self.all_colors = np.arange(number_of_colors) self.game_type = game_type self.save_images_suffix = save_images_suffix figure = self.game_type != self.game_types['r_l'] self.game_board = FillerBoard(number_of_colors, height, width, figure=figure) self.turn_count = 0 player_1_starting_cell = (height - 1, 0) if self.game_type == self.game_types['vs_ai']: self.player_1 = player.AIPlayer([player_1_starting_cell], self.game_board) elif self.game_type == self.game_types['r_l']: self.player_1 = player.RLPlayer([player_1_starting_cell], self.game_board) elif self.game_type == self.game_types['human']: self.player_1 = player.HumanPlayer([player_1_starting_cell], self.game_board) elif self.game_type == self.game_types['random']: self.player_1 = player.RandomPlayer([player_1_starting_cell], self.game_board) player_2_starting_cell = (0, width - 1) self.player_2 = player.AIPlayer([player_2_starting_cell], self.game_board)
def main(): # create the board based on player specifications print "The board will be an nxm grid." n = raw_input("Please choose n: ") m = raw_input("Please choose m: ") print "The winner is the first player to get k marks in a row" k = raw_input("Please choose k: ") ck_board = board.Board(int(n), int(m), int(k)) print ck_board # get player info player1_type = raw_input("Player1 is a Computer or Human? (c/h) ") if player1_type == "h": name1 = raw_input("Player 1's name: ") symbol1 = raw_input("Player 1's symbol: ") else: name1 = "P1: Computer" symbol1 = "o" player2_type = raw_input("Player2 is a Computer or Human? (c/h) ") if player2_type == "h": name2 = raw_input("Player 2's name: ") symbol2 = raw_input("Player 2's symbol: ") while symbol1 == symbol2: symbol2 = raw_input("Use a different symbol from Player 1: ") else: name2 = "P2: Computer" symbol2 = "o" if symbol1 == symbol2: symbol2 = "x" # Create players as humans or computers if player1_type == "h": player1 = player.HumanPlayer(name1, symbol1) else: player1 = player.ComputerPlayer(name1, symbol1, symbol2, ck_board) if player2_type == "h": player2 = player.HumanPlayer(name2, symbol2) else: player2 = player.ComputerPlayer(name2, symbol2, symbol1, ck_board) # set playing order curr_player = player1 next_player = player2 # gameplay, players switch off turns until there is a winner or tie game while not ck_board.has_winner() and not ck_board.is_full(): print ck_board move = curr_player.prompt_move() while not ck_board.accepts_move(move): move = curr_player.prompt_move() (curr_player, next_player) = (next_player, curr_player) print ck_board if ck_board.has_winner(): print "{} wins!".format(next_player) else: print "It's a draw!"
def on_pre_enter(self, *args): self.add_widget( GraphicalCoup(players=(player.HumanPlayer(), player.ThinkingAI(), player.RandomAI(), player.RandomAI())))
def hasWinner(): if utils.stack.count(Player1.hand) == 0 or utils.stack.count( AIPlayer.hand) == 0: print 'THE WINNER IS: ', getWinner() return True return False def getWinner(): if utils.stack.count(Player1.hand) == 0: return Player1.name elif utils.stack.count(AIPlayer.hand) == 0: return AIPlayer.name def checkForWinner(): if utils.stack.count(Player1.hand) == 0 or utils.stack.count( AIPlayer.hand) == 0: return True return False Deck = deck.Deck() Player1 = player.HumanPlayer(Deck, 'Humano') AIPlayer = player.Player(Deck, 'PC') player_stack = [Player1, AIPlayer] while not hasWinner(): doTurn()
def getInput(self): self.refresh() while 1: # Get the event keys for event in pygame.event.get(): if event.type == QUIT: sys.exit(0) elif event.type == KEYDOWN: if event.key == K_ESCAPE: return -1 if event.key == K_UP: if self.select != 1: self.select = self.select - 1 else: self.select = 8 self.refresh() if event.key == K_DOWN: if self.select != 8: self.select = self.select + 1 else: self.select = 1 self.refresh() if event.key == K_LEFT: if self.select == 1: if self.carColor != 1: self.carColor = self.carColor - 1 else: self.carColor = len(self.listCars) if self.select == 3: if self.level != 1: self.level = self.level - 1 else: self.level = 3 self.refresh() if event.key == K_RIGHT: if self.select == 1: if self.carColor != len(self.listCars): self.carColor = self.carColor + 1 else: self.carColor = 1 if self.select == 3: if self.level != 3: self.level = self.level + 1 else: self.level = 1 self.refresh() # Key Enter used for Command Keys Enter if event.key == K_RETURN: if self.select == 4: self.keyAccel = None self.refresh() key = 0 while key == 0: for event2 in pygame.event.get(): if event2.type == KEYDOWN: self.keyAccel = event2.key key = 1 if self.select == 5: self.keyBrake = None self.refresh() key = 0 while key == 0: for event2 in pygame.event.get(): if event2.type == KEYDOWN: self.keyBrake = event2.key key = 1 if self.select == 6: self.keyLeft = None self.refresh() key = 0 while key == 0: for event2 in pygame.event.get(): if event2.type == KEYDOWN: self.keyLeft = event2.key key = 1 if self.select == 7: self.keyRight = None self.refresh() key = 0 while key == 0: for event2 in pygame.event.get(): if event2.type == KEYDOWN: self.keyRight = event2.key key = 1 self.refresh() # Enter the Pseudo if event.key >= K_a and event.key <= K_z and self.select == 2: if len(self.pseudo) >= 3: self.pseudo = pygame.key.name(event.key).upper() else: self.pseudo = self.pseudo + pygame.key.name( event.key).upper() self.refresh() if event.key == K_RETURN and self.select == 8: # Careful to get the real carColor number and not the fake one (caused by the listdir) return player.HumanPlayer( self.pseudo, int(self.listAvailableCarNames[self.carColor - 1].replace( "car", "")), self.level, self.keyAccel, self.keyBrake, self.keyLeft, self.keyRight) pygame.time.delay(10)
def test_human_player_init(self): test_player = player.HumanPlayer('www') self.assertEqual(test_player.name, 'Человек www') self.assertIsInstance(test_player.card, card.Card)
def playerVSplayer(self): self.player = { -1: player.HumanPlayer("noir"), 1: player.HumanPlayer("blanc") }
def __init__(self,size,p1_name,p2_name): super().__init__(size) self.players = [player.HumanPlayer(21,1,p1_name),player.ComputerPlayer(21,1,p2_name)]
return letter letter = 'O' if letter == 'X' else 'X' time.sleep(.8) if print_game: print('It\'s a tie!!Better luck next time') user = input( 'With whom do you want to play:\n 1. To play with your friend press \'F\' and enter\n 2. To play with a ' 'random computer player press \'R\' and enter\n 3. To play with a Smart Computer Player press \'S\' and ' 'enter\n') if user == 'F' or user == 'f': x = player.HumanPlayer('X') o = player.HumanPlayer('O') elif user == 'R' or user == 'r': x = player.RandomComputerPlayer('X') o = player.HumanPlayer('O') elif user == 'S' or user == 's': x = player.SmartComputerPlayer('X') o = player.HumanPlayer('O') elif user == 'Q' or user == 'p': x = player.RandomComputerPlayer('X') o = player.SmartComputerPlayer('O') elif user == 'Q' or user == 'q': x = player.SmartComputerPlayer('X') o = player.SmartComputerPlayer('O')
def changePlayer(numJoueur): numJoueur = (numJoueur+1)%2 return numJoueur board = [7,5,3,1] numJoueur = 0 #print ("avec ",board ,"j'aurais ce resultat", evaluate(board,False,0)) #print ("avec ",board ,"je joue ", IAMakeChoice(board)) known = {} IA = 0 players=[] players.append(player.IADeepPlayer()) players.append(player.HumanPlayer()) while(not isFinished(board)): displayBoard(board) if IA==numJoueur: print ("IA Playing") else : print ("player", numJoueur, "make a choice") line, nbMatches = players[numJoueur].makeChoice(board) print ("Le joueur retire",nbMatches,"on line",line) drawMatches(line, nbMatches,board) numJoueur = changePlayer(numJoueur)
def __init__(self, n=3): self.t3_board = TicTacToeBoard(n) self.player1 = player.HumanPlayer(self.t3_board.clone()) self.player2 = player.HumanPlayer(self.t3_board.clone()) self.players = {1: self.player1, -1: self.player2}
else: team1 = team.get_team_from_file(team1file) if team2file == '': team2 = team.make_random_team(2) else: team2 = team.get_team_from_file(team2file) player1 = team1player player2 = team2player singlebattle = battle.Battle(team1, team2, player1, player2) result = singlebattle.battle() print("Winner: " + str(result)) # Inits game with desired players/AI players if (__name__ == "__main__"): argv = sys.argv player2 = player.RandomAI("player 2") if len(argv) > 1: ai = argv[1].lower() if ai == 'minimax': player2 = player.MinimaxAI("player 2") elif ai == 'expectimax': player2 = player.ExpectimaxAI("player 2") main( "", #./tests/testteam.txt "", player.HumanPlayer("player 1"), player2)
def add_player(self, is_human=True, trainable=False, value_net=None): if is_human: self.players.append(player.HumanPlayer(len(self.players), self)) else: self.players.append( mcts.MCTSPlayer(len(self.players), self, value_net, trainable))