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 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, …)
Prometheus Design
System specification
System specification(2)
Architectural design
Detailed design: Croupier
Detailed design: Player
Implementation Details
Meta-level reasoning... new ChooseBettingPlanPlan()
OQL syntax select AgentId $player from $beliefbase.table.getPlayers() where !$goal.game_result.getWinners().contains($player) $goal.game_result new NotifyGameResultPlan()
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
Demo
Final Analysis
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