Skip to content

Commit

Permalink
change API to input 2 agents
Browse files Browse the repository at this point in the history
  • Loading branch information
wesleyjtann committed Jan 26, 2019
1 parent 494b8f1 commit 5969687
Showing 1 changed file with 33 additions and 28 deletions.
61 changes: 33 additions & 28 deletions testperf.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,21 +3,20 @@
import game
setup_config = game.setup_config
start_poker = game.start_poker

# from fishplayer import FishPlayer
from randomplayer import RandomPlayer
# from honestplayer import HonestPlayer
# from consoleplayer import ConsolePlayer

import time
from argparse import ArgumentParser

""" To run testperf.py with your random warrior AI or smart warrior AI
$ python testperf.py -n "Random Warrior" -a RandomPlayer
$ python testperf.py -n "Smart Warrior" -a smartwarrior

""" =========== *Remember to import your agent!!! =========== """
from randomplayer import RandomPlayer
from smartwarrior import SmartWarrior
""" ========================================================= """

""" Example---To run testperf.py with random warrior AI and smart warrior AI
$ python testperf.py -n1 "Random Warrior" -a1 RandomPlayer -n2 "Smart Warrior" -a2 smartwarrior
"""

def testperf(agent_name, agent):
def testperf(agent_name1, agent1, agent_name2, agent2):

# Init to play 500 games of 1000 rounds
num_game = 500
Expand All @@ -26,51 +25,57 @@ def testperf(agent_name, agent):
smallblind_amount = 20

# Init pot of players
randplayer_pot = 0
agentplayer_pot = 0
agent1_pot = 0
agent2_pot = 0

# Setting configuration
config = setup_config(max_round=max_round, initial_stack=initial_stack, small_blind_amount=smallblind_amount)

# Register players
config.register_player(name="R1", algorithm=RandomPlayer())
config.register_player(name=agent_name, algorithm=RandomPlayer())
config.register_player(name=agent_name1, algorithm=RandomPlayer())
config.register_player(name=agent_name2, algorithm=RandomPlayer())
# config.register_player(name=agent_name1, algorithm=agent1())
# config.register_player(name=agent_name2, algorithm=agent2())


# Start playing num_game games
for game in range(1, num_game+1):
print("Game number: ", game)
game_result = start_poker(config, verbose=0)
randplayer_pot = randplayer_pot + game_result['players'][0]['stack']
agentplayer_pot = agentplayer_pot + game_result['players'][1]['stack']
agent1_pot = agent1_pot + game_result['players'][0]['stack']
agent2_pot = agent2_pot + game_result['players'][1]['stack']

print("\n After playing {} games of {} rounds, the results are: ".format(num_game, max_round))
print("\n Random player's final pot: ", randplayer_pot)
print("\n " + agent_name + "'s final pot: ", agentplayer_pot)
# print("\n Agent 1's final pot: ", agent1_pot)
print("\n " + agent_name1 + "'s final pot: ", agent1_pot)
print("\n " + agent_name2 + "'s final pot: ", agent2_pot)

# print("\n ", game_result)
# print("\n Random player's final stack: ", game_result['players'][0]['stack'])
# print("\n " + agent_name + "'s final stack: ", game_result['players'][1]['stack'])

if (randplayer_pot<agentplayer_pot):
print("\n Congratulations! " + agent_name + " has won.")
elif(randplayer_pot>agentplayer_pot):
print("\n Random Player has won!")
if (agent1_pot<agent2_pot):
print("\n Congratulations! " + agent_name2 + " has won.")
elif(agent1_pot>agent2_pot):
print("\n Congratulations! " + agent_name1 + " has won.")
# print("\n Random Player has won!")
else:
Print("\n Draw. Please try again")
Print("\n It's a draw!")


def parse_arguments():
parser = ArgumentParser()
parser.add_argument('-n', '--agent_name', help="Name of your agent", default="Your agent", type=str)
parser.add_argument('-a', '--agent', help="Your group's agent", default=RandomPlayer())
parser.add_argument('-n1', '--agent_name1', help="Name of agent 1", default="Your agent", type=str)
parser.add_argument('-a1', '--agent1', help="Agent 1", default=RandomPlayer())
parser.add_argument('-n2', '--agent_name2', help="Name of agent 2", default="Your agent", type=str)
parser.add_argument('-a2', '--agent2', help="Agent 2", default=RandomPlayer())
args = parser.parse_args()
return args.agent_name, args.agent
return args.agent_name1, args.agent1, args.agent_name2, args.agent2

if __name__ == '__main__':
name, agent = parse_arguments()
name1, agent1, name2, agent2 = parse_arguments()
start = time.time()
testperf(name, agent)
testperf(name1, agent1, name2, agent2)
end = time.time()

print("\n Time taken to play: %.4f seconds" %(end-start))

0 comments on commit 5969687

Please sign in to comment.