240 likes | 503 Views
The Poker Game in Jadex. by Group 1 Mohammed Musavi (Ashkan) Xavi Dolcet Enric Tejedor. Texas Hold’em Poker. Scenario Agent design Jadex implementation detail Demo . Texas Hold’em Poker. Community card type poker Typical full table has nine or ten player
E N D
The Poker Gamein Jadex by Group 1 Mohammed Musavi (Ashkan) Xavi Dolcet Enric Tejedor
Texas Hold’em Poker • Scenario • Agent design • Jadex implementation detail • Demo
Texas Hold’em Poker • Community card type poker • Typical full table has nine or ten player • Dealer position identifies with Button • At the casino a Croupier controls the rounds • Identifying the winner at the Showdown or when player Bluffs • Awarding the pot to the winner
Texas Hold’em Poker • Betting rounds • Pre-Flop (little & big blind, dealing cards - players actions: Call, Raise, Check and Fold) • Flop (dealer burns a card – face up 3 cards) • Turn (dealing fourth community card) • River (dealing fifth community card) • Showdown if necessary
Texas Hold’em Poker Poker Hand Ranking
Texas Hold’em Poker • 3 Strategies are implemented: • Conservative gaming: ONLY high hands • Aggressive gaming: medium/high hands • Bluffer: all type of hands
Texas Hold’em Poker Issues to consider Game management: Register/unregister players Managing hand (i.e. card dealing, players turn, …) Showdown (identifying the winner)
Texas Hold’em Poker Game rounds (pre-flop, flop, turn & river) Betting process (call, raise, check, fold…) Available roles in the game process (i.e. joining players or winner checking) Game rules ( i.e. one dealer but several players, …)
Meta-level reasoning <metagoal name="choose_bet"> <parameterset name="applicables" .../> <parameterset name="result" ... direction="out"/> <trigger> <messageevent ref="bet_start"/> </trigger> </metagoal> ... <plan name="choose_betting_plan"> <parameterset name="applicables" ...> <goalmapping ref="choose_bet.applicables"/> </parameterset> <parameterset name="result" ... direction="out"> <goalmapping ref="choose_bet.result"/> </parameterset> <body>new ChooseBettingPlanPlan()</body> <trigger> <goal ref="choose_bet"/> </trigger> </plan>
OQL syntax <plan name="notify_result"> <parameter name="loser" class="AgentId"> <bindingoptions> select AgentId $player from $beliefbase.table.getPlayers() where !$goal.game_result.getWinners().contains($player) </bindingoptions> </parameter> <parameter name="game_result" class="GameResult"> <value>$goal.game_result</value> </parameter> <body>new NotifyGameResultPlan()</body> <trigger> <goal ref="notify_result"/> </trigger> </plan>
Poker ontology • Agents can’t acces others’ beliefs! • Messages are used to exchange knowledge • Content Language: NuggetsXML • Ontology: Protégé + Beanynizer
Plan triggers A plan can be activated by the following elements: - Events - Goals - Beliefs - Facts - Conditions
Pros • Fast learning curve (Java / XML) • Meta-level reasoning • Richness, expressivity, dinamicity • Goal-orientedness • Plan triggers • OQL Syntax • Good set of tools • Ontologies • Standalone /JADE
Cons • No CASE tool to assist development • XML ADF files • Tedious coding of message events • Stability issues • Scheduling mechanism
Conclusions • Jadex is a recommendable BDI reasoning engine • Good features, and some lacks that could be fixed • Open source counterpart to JACK