change the class name
This commit is contained in:
parent
d513781a10
commit
38d3e2f829
|
@ -2,44 +2,13 @@ from hanabi import *
|
|||
import util
|
||||
import agent
|
||||
import random
|
||||
|
||||
class InnerStatePlayer(agent.Agent):
|
||||
def __init__(self, name, pnr):
|
||||
self.name = name
|
||||
self.explanation = []
|
||||
def get_action(self, nr, hands, knowledge, trash, played, board, valid_actions, hints, hits, cards_left):
|
||||
my_knowledge = knowledge[nr]
|
||||
|
||||
potential_discards = []
|
||||
for i,k in enumerate(my_knowledge):
|
||||
if util.is_playable(k, board):
|
||||
return Action(PLAY, card_index=i)
|
||||
if util.is_useless(k, board):
|
||||
potential_discards.append(i)
|
||||
|
||||
if potential_discards:
|
||||
return Action(DISCARD, card_index=random.choice(potential_discards))
|
||||
|
||||
if hints > 0:
|
||||
for player,hand in enumerate(hands):
|
||||
if player != nr:
|
||||
for card_index,card in enumerate(hand):
|
||||
if card.is_playable(board):
|
||||
if random.random() < 0.5:
|
||||
return Action(HINT_COLOR, player=player, color=card.color)
|
||||
return Action(HINT_RANK, player=player, rank=card.rank)
|
||||
|
||||
hints = util.filter_actions(HINT_COLOR, valid_actions) + util.filter_actions(HINT_RANK, valid_actions)
|
||||
return random.choice(hints)
|
||||
|
||||
return random.choice(util.filter_actions(DISCARD, valid_actions))
|
||||
|
||||
def format_hint(h):
|
||||
if h == HINT_COLOR:
|
||||
return "color"
|
||||
return "rank"
|
||||
|
||||
class OuterStatePlayer(agent.Agent):
|
||||
class SkillIssuePlayer(agent.Agent):
|
||||
def __init__(self, name, pnr):
|
||||
self.name = name
|
||||
self.hints = {}
|
||||
|
@ -132,5 +101,4 @@ class OuterStatePlayer(agent.Agent):
|
|||
self.hints[(player,action.card_index+i)] = self.hints[(player,action.card_index+i+1)]
|
||||
self.hints[(player,action.card_index+i+1)] = set()
|
||||
|
||||
agent.register("inner", "Inner State Player", InnerStatePlayer)
|
||||
agent.register("outer", "Outer State Player", OuterStatePlayer)
|
||||
agent.register("skill", "Skill Issue Player", SkillIssuePlayer)
|
||||
|
|
Loading…
Reference in New Issue