NAME

Poker::Robot - base class for building custom poker robots

VERSION

Version 0.01

SYNOPSIS

package Poker::Robot::Mybot;
use Moo;

# Poker::Robot::Random shows a working example
extends 'Poker::Robot::Random';

# override default method 
sub move {
  # move selection logic goes here
}

# and elsewhere in a script ...
use Poker::Robot::Mybot;

# Note: you must pick a unique username!
$robot = Poker::Robot::Mybot->new(
  websocket => 'wss://aitestbed.com:443/websocket',
  username => 'Mybot',  
  ring_ids => [ 1 ], 
);

$robot->connect;

INTRODUCTION

Handlers are automatically executed at appropriate stages of the game, allowing your bot to run on autopilot. By default, these handlers return legal but essentially random values. Your job is to override them in your subclass with something that makes more sense. Poker::Robot::Random shows a working example.

SERVERS

https://aitestbed.com is the default test server. This is where you can deploy your bot once it is ready and have it compete against other bots and humans in real-time.

LOGGING

To see what your bot is doing, do a tail -f on robot.log

ATTRIBUTES

websocket

Websocket address of the test server. Default is wss://aitestbed:443/websocket

ring_ids

Required. Ids of ring games to join. Before setting this attribute, bring up the test site on your browser to see which tables have open seats.

HANDLERS

The following handlers can be overriden in your subclass with custom code for you robot. At some point I'll get around to documenting this better, but this will have to do for now.

SERVER CODES

guest_login     
login_snap   
ring_snap   
tour_snap        
player_snap     
table_snap       
message_snap     
table_update    
player_update    
login_update     
new_game         
end_game         
deal_hole        
begin_new_round  
begin_new_action 
deal_community 
showdown       
high_winner    
low_winner     
move_button    
forced_logout  

NOTIFICATION CODES

notify_login        
notify_update_login 
notify_logout       
notify_create_ring  
notify_join_table   
notify_unjoin_table 
notify_post         
notify_bet          
notify_check        
notify_fold         
notify_discard      
notify_draw         
notify_credit_chips 
notify_table_chips  
notify_lobby_update
notify_message    
notify_pick_game    
notify_lr_update   

RESPONSE CODES

join_ring_res   
unjoin_ring_res 
watch_table_res 
unwatch_table_res
login_res         
logout_res        
register_res      
bet_res           
check_res         
fold_res          
discard_res       
draw_res         
pick_game_res     
reload_res 

REQUEST CODES

join_ring
unjoin_ring
watch_table
unwatch_table
login
logout
register
bet      
check      
fold          
discard       
draw        
pick_game
reload 

AUTHOR

Nathaniel Graham, ngraham@cpan.org

BUGS

Please report any bugs or feature requests directly to ngraham@cpan.org

LICENSE AND COPYRIGHT

Copyright 2016 Nathaniel Graham.

This program is free software; you can redistribute it and/or modify it under the terms of the MIT license.