Upload
hannah-logan
View
215
Download
0
Tags:
Embed Size (px)
Citation preview
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 PokerBetting 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<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
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