Jadex 0.941

jadex.examples.blackjack.dealer
Agent Dealer

jadex.examples.blackjack.dealer.Dealer
  • jadex.adapter.standalone.planlib.DF_standalone

  • agent Dealer
    contains jadex.adapter.standalone.planlib.DF_standalone

    The blackjack dealer controls the game.

    The dealer registers itself at the DirectoryFacilitator and waits for player agents to join the table.


    Belief Summary
    belief CardSet cardset
               The card set used to play the game.
    belief GameState gamestate
              
    belief Dealer myself
               The self representation of the dealer.
    beliefset Player players
               The players.
    belief long playerwaitmillis
               The number of seconds to wait for answers from players.
    belief boolean singleStepMode
               When set to true, each step in the game must be manually issued in the GUI.
    belief GameStatistics statistics
               The history of played games.
    belief int stepdelay
               The number of seconds to wait before drawing a card.
    beliefset AgentIdentifier tracker
               It's possible that a few different manager (possibly from remote Players) want to track their players during the game, therefor a beliefset containing all manager-AIDs is needed.
     
    Goal Summary
    achievegoalref df_deregister
               Used for deregistering the dealer at the df.
    maintaingoalref df_keep_registered
               Used for registering the dealer at the df.
    performgoal play_game()
               Main goal to play a game.
    performgoal play_with_player(Player player)
               Goal to play with a single player (in the context of a larger game).
     
    Plan Summary
    standard plan gui_plan()
               Manage dealer gui.
    standard plan play_game_plan()
               Play a game.
    standard plan play_with_player_plan(Player player)
               Play a game with a single player.
    standard plan propagate_game_state_plan()
              
    standard plan register_plan()
               Register a player.
     
    Event Summary
    messageevent inform_action_done(Class content-class, String language, String ontology, String performative)
               inform a player about a the game result
    messageevent inform_game_state(Class content-class, String conversation-id, String language, String ontology, String performative)
              
    messageevent inform_shutdown(String content-start, String performative)
               The manager is shutting down the BlackJack application.
    messageevent inform_tracker(String content, String performative)
               inform tracker about playing players
    messageevent query_tracking(String content-start, String performative)
               The manager registers as tracker on game settings.
    messageevent refuse_action(String language, String ontology, String performative)
               inform a player about a the game result
    messageevent refuse_bet(Class content-class, String language, String ontology, String performative)
              
    messageevent request_bet(Class content-class, String conversation-id, String language, String ontology, String performative)
               A player makes a bet.
    messageevent request_draw(Class content-class, String language, String ontology, String performative)
               A player wants to draw another card.
    messageevent request_finished(Class content-class, String language, String ontology, String performative)
               A player has finished its game (i.e. doesn't want to draw any more cards).
    messageevent request_join(Class content-class, String language, String ontology, String performative)
               Player request to join the game.
    internalevent step()
               Event to trigger a step.
     
    Expression Summary
    condition dealer_card
               Check if the dealer has drawn its first card.
    condition dealer_finished
               Check if the dealer has finished drawing cards.
    condition dealers_turn
               Check if it is the dealer's turn.
    condition players_turn
               Check if it is the $player's turn.
    expression turnplayer
               The player that gets the next card (if any).
     
    Initial State Summary
    default initial state  default
              
     

    Belief Detail

    cardset

    belief CardSet cardset
    The card set used to play the game.


    playerwaitmillis

    belief long playerwaitmillis
    The number of seconds to wait for answers from players.

    Default fact:
    (Integer)$propertybase.getProperty("standard.timeout")

    stepdelay

    belief int stepdelay
    The number of seconds to wait before drawing a card. Can be adjusted in the GUI.

    Default fact:
    1

    singleStepMode

    belief boolean singleStepMode
    When set to true, each step in the game must be manually issued in the GUI.

    Default fact:
    false

    myself

    belief Dealer myself
    The self representation of the dealer.

    Default fact:
    new Dealer()

    statistics

    belief GameStatistics statistics
    The history of played games.

    Default fact:
    new GameStatistics()

    gamestate

    belief GameState gamestate
    Default fact:
    new GameState($beliefbase.myself, null)

    players

    beliefset Player players
    The players.


    tracker

    beliefset AgentIdentifier tracker
    It's possible that a few different manager (possibly from remote Players) want to track their players during the game, therefor a beliefset containing all manager-AIDs is needed.

    Goal Detail

    play_game

    performgoal play_game()
    Main goal to play a game.

    BDI flags:
    retry: true
    retry delay: 3000
    exclude: never
    random selection: false
    meta-level reasoning: true
    post to all: false
    Context Condition:
    $beliefbase.players.length > 0

    play_with_player

    performgoal play_with_player(Player player)
    Goal to play with a single player (in the context of a larger game).

    Parameters:
    in parameter player
    BDI flags:
    retry: true
    retry delay: 0
    exclude: when_tried
    random selection: false
    meta-level reasoning: true
    post to all: false

    df_deregister

    achievegoalref df_deregister
    Used for deregistering the dealer at the df.

    Parameters:
    parameterref address
    parameterref description
    parameterref df
    parameterref result
    Referenced from:
    df_deregister in capability jadex.adapter.standalone.planlib.DF_standalone

    df_keep_registered

    maintaingoalref df_keep_registered
    Used for registering the dealer at the df.

    Parameters:
    parameterref address
    parameterref buffertime
    parameterref current_time
    parameterref description
    parameterref df
    parameterref leasetime
    parameterref result
    Referenced from:
    df_keep_registered in capability jadex.adapter.standalone.planlib.DF_standalone
    Plan Detail

    register_plan

    standard plan register_plan()
    Register a player.

    Plan body:
    new DealerRegisterPlayerPlan()
    Message event trigger:
    request_join

    play_game_plan

    standard plan play_game_plan()
    Play a game.

    Plan body:
    new DealerGameRoundMasterPlan()
    Goal Trigger:
    play_game

    play_with_player_plan

    standard plan play_with_player_plan(Player player)
    Play a game with a single player.

    Parameters:
    in parameter player (goal mappings: play_with_player.player)
    Plan body:
    new DealerGameRoundPlayerPlan()
    Goal Trigger:
    play_with_player

    gui_plan

    standard plan gui_plan()
    Manage dealer gui.

    Plan body:
    new DealerGUIPlan()

    propagate_game_state_plan

    standard plan propagate_game_state_plan()
    Plan body:
    new PropagateGameStatePlan()
    Belief change trigger
    myself
    Beliefset change trigger
    players
    Event Detail

    step

    internalevent step()
    Event to trigger a step.

    Event flags:
    random selection: false
    meta-level reasoning: true
    post to all: true

    request_join

    messageevent request_join(Class content-class, 
                              String language, 
                              String ontology, 
                              String performative)
    Player request to join the game.

    Parameters:
    fixed parameter content-class Default value:  RequestJoin.class
    fixed parameter language Default value:  SFipa.JAVA_XML
    fixed parameter ontology Default value:  BlackjackOntology.ONTOLOGY_NAME
    fixed parameter performative Default value:  SFipa.REQUEST
    Event flags:
    direction: receive
    message type: fipa
    random selection: false
    meta-level reasoning: true
    post to all: false

    request_draw

    messageevent request_draw(Class content-class, 
                              String language, 
                              String ontology, 
                              String performative)
    A player wants to draw another card.

    Parameters:
    fixed parameter content-class Default value:  RequestDraw.class
    fixed parameter language Default value:  SFipa.JAVA_XML
    fixed parameter ontology Default value:  BlackjackOntology.ONTOLOGY_NAME
    fixed parameter performative Default value:  SFipa.REQUEST
    Event flags:
    direction: receive
    message type: fipa
    random selection: false
    meta-level reasoning: true
    post to all: false

    request_bet

    messageevent request_bet(Class content-class, 
                             String conversation-id, 
                             String language, 
                             String ontology, 
                             String performative)
    A player makes a bet.

    Parameters:
    fixed parameter content-class Default value:  RequestBet.class
    inout parameter conversation-id Default value:  SFipa.createUniqueId($scope.getAgentName()) - SFipa.createUniqueId($scope.getAgentName())
    fixed parameter language Default value:  SFipa.JAVA_XML
    fixed parameter ontology Default value:  BlackjackOntology.ONTOLOGY_NAME
    fixed parameter performative Default value:  SFipa.REQUEST
    Event flags:
    direction: send
    message type: fipa
    random selection: false
    meta-level reasoning: true
    post to all: false

    refuse_bet

    messageevent refuse_bet(Class content-class, 
                            String language, 
                            String ontology, 
                            String performative)
    Parameters:
    fixed parameter content-class Default value:  RequestBet.class
    fixed parameter language Default value:  SFipa.JAVA_XML
    fixed parameter ontology Default value:  BlackjackOntology.ONTOLOGY_NAME
    fixed parameter performative Default value:  SFipa.REFUSE
    Event flags:
    direction: receive
    message type: fipa
    random selection: false
    meta-level reasoning: true
    post to all: false

    request_finished

    messageevent request_finished(Class content-class, 
                                  String language, 
                                  String ontology, 
                                  String performative)
    A player has finished its game (i.e. doesn't want to draw any more cards).

    Parameters:
    fixed parameter content-class Default value:  RequestFinished.class
    fixed parameter language Default value:  SFipa.JAVA_XML
    fixed parameter ontology Default value:  BlackjackOntology.ONTOLOGY_NAME
    fixed parameter performative Default value:  SFipa.REQUEST
    Event flags:
    direction: receive
    message type: fipa
    random selection: false
    meta-level reasoning: true
    post to all: false

    inform_shutdown

    messageevent inform_shutdown(String content-start, 
                                 String performative)
    The manager is shutting down the BlackJack application.

    Parameters:
    fixed parameter content-start Default value:  "manager:shutDown"
    fixed parameter performative Default value:  SFipa.INFORM
    Event flags:
    direction: receive
    message type: fipa
    random selection: false
    meta-level reasoning: true
    post to all: false

    query_tracking

    messageevent query_tracking(String content-start, 
                                String performative)
    The manager registers as tracker on game settings.

    Parameters:
    fixed parameter content-start Default value:  "manager:registerAsTracker"
    fixed parameter performative Default value:  SFipa.QUERY_REF
    Event flags:
    direction: receive
    message type: fipa
    random selection: false
    meta-level reasoning: true
    post to all: false

    inform_action_done

    messageevent inform_action_done(Class content-class, 
                                    String language, 
                                    String ontology, 
                                    String performative)
    inform a player about a the game result

    Parameters:
    fixed parameter content-class Default value:  Done.class
    fixed parameter language Default value:  SFipa.JAVA_XML
    fixed parameter ontology Default value:  BlackjackOntology.ONTOLOGY_NAME
    fixed parameter performative Default value:  SFipa.INFORM
    Event flags:
    direction: send_receive
    message type: fipa
    random selection: false
    meta-level reasoning: true
    post to all: false

    refuse_action

    messageevent refuse_action(String language, 
                               String ontology, 
                               String performative)
    inform a player about a the game result

    Parameters:
    fixed parameter language Default value:  SFipa.JAVA_XML
    fixed parameter ontology Default value:  BlackjackOntology.ONTOLOGY_NAME
    fixed parameter performative Default value:  SFipa.REFUSE
    Event flags:
    direction: send
    message type: fipa
    random selection: false
    meta-level reasoning: true
    post to all: false

    inform_tracker

    messageevent inform_tracker(String content, 
                                String performative)
    inform tracker about playing players

    Parameters:
    in parameter content
    fixed parameter performative Default value:  SFipa.INFORM
    Event flags:
    direction: send
    message type: fipa
    random selection: false
    meta-level reasoning: true
    post to all: false

    inform_game_state

    messageevent inform_game_state(Class content-class, 
                                   String conversation-id, 
                                   String language, 
                                   String ontology, 
                                   String performative)
    Parameters:
    fixed parameter content-class Default value:  GameState.class
    inout parameter conversation-id Default value:  SFipa.createUniqueId($scope.getAgentName())
    fixed parameter language Default value:  SFipa.JAVA_XML
    fixed parameter ontology Default value:  BlackjackOntology.ONTOLOGY_NAME
    fixed parameter performative Default value:  SFipa.INFORM
    Event flags:
    direction: send
    message type: fipa
    random selection: false
    meta-level reasoning: true
    post to all: false
    Expression Detail

    turnplayer

    expression turnplayer
    The player that gets the next card (if any).

    Expression:
    select one Player $p from $beliefbase.players where $p.getState().equals(Player.STATE_PLAYING) order by $p.getCards().length

    dealers_turn

    condition dealers_turn
    Check if it is the dealer's turn.

    Expression:
    // The dealer may draw its initial card when all players have two cards. $beliefbase.myself.getCards().length==0 && (select one Player $p from $beliefbase.players where !$p.getState().equals(Player.STATE_IDLE) && $p.getCards().length!=2) == null // The dealer may draw more cards, when all players are either idle or finished. || (select one Player $p from $beliefbase.players where !$p.getState().equals(Player.STATE_IDLE) && !$p.getState().equals(Player.STATE_FINISHED)) == null

    players_turn

    condition players_turn
    Check if it is the $player's turn.

    Expression:
    // All players must be idle, playing, or finished. (select one Player $p from $beliefbase.players where !$p.getState().equals(Player.STATE_IDLE) && !$p.getState().equals(Player.STATE_PLAYING) && !$p.getState().equals(Player.STATE_FINISHED)) == null // And this player must be the first with the least number of cards. // Hack !!! Assume "any" selects players in order. && (select one Player $p from $beliefbase.players where $p.getState().equals(Player.STATE_PLAYING) && $p.getCards().length<=$player.getCards().length order by $p.getCards().length) == $player
    Parameter:  Player $player

    dealer_card

    condition dealer_card
    Check if the dealer has drawn its first card.

    Expression:
    $beliefbase.myself.getCards().length==1

    dealer_finished

    condition dealer_finished
    Check if the dealer has finished drawing cards.

    Expression:
    $beliefbase.myself.getState().equals(Player.STATE_FINISHED) || $beliefbase.myself.getState().equals(Player.STATE_IDLE)
    Initial State Detail

    default

    default initial state default
    Initial Goals:
    df_keep_registered (description=$propertybase.getProperty("fipa.agentdescription.dealer"), leasetime=6000000)
    play_game
    Initial Plans:
    gui_plan

    Jadex 0.941

    Submit a bug or feature
    For further API reference and developer documentation, see the Jadex User Guide and the Jadex Tutorial. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, and working code examples.

    Copyright (C) 2002-2005 Lars Braubach, Alexander Pokahr, Andrzej Walczak - University of Hamburg. Use is subject to license terms.