Esempio n. 1
0
 public function __tostring()
 {
     if (null === self::$__tostring || !is_callable(self::$__tostring)) {
         self::$__tostring = create_function('$c', 'return \'<img src="/images/\'.$c->suit.\'_\'.$c->short.\'.gif" />\';');
     }
     return call_user_func(self::$__tostring, $this);
 }
Esempio n. 2
0
 /**
  * Translate game actions into a human readable format.
  *
  * @param array $actions The Action objects (PokerAction)
  * @return array An array of strings representing / describing the actions.
  */
 private function getActionLog($actions)
 {
     $log = array();
     $deal = false;
     // translate actions into readable log messages
     foreach ($actions as $key => $action) {
         switch ($action->action) {
             case 'new':
                 //$log[] = 'Game #'.$action->game->id.' starts.';
                 $log[] = '';
                 //$log[] = '#Game No : '.$action->game->id;
                 $log[] = '***** Hand History for Game ' . $action->game->id . ' *****';
                 $log[] = "NL Texas Hold'em - " . date('l, F d, H:i:s e Y', $action->time);
                 //Monday, March 07, 02:55:51 EST 2011
                 $log[] = 'Table ' . $action->table->title . ' (Real Money)';
                 $log[] = 'Seat ' . $action->params['button'] . ' is the button';
                 $log[] = 'Total number of players: ' . count($action->params['players']) . '/' . $action->table->seats;
                 foreach ($action->params['players'] as $key => $player) {
                     $log[] = 'Seat ' . $player['position'] . ': ' . $player['name'] . ' ( ' . $player['stack'] . ' )';
                 }
                 break;
             case 'deal':
                 if ($deal == false) {
                     $log[] = '** Dealing down cards **';
                     $deal = true;
                 }
                 if ($action->player->user === $this->s->user) {
                     $card1 = new PokerCard($action->params[0]);
                     $card2 = new PokerCard($action->params[1]);
                     $log[] = 'Dealt to ' . $this->s->user->realname . ' [ ' . $card1->shortname() . ', ' . $card2->shortname() . ' ]';
                 }
                 break;
             case 'flop':
                 $card1 = new PokerCard($action->params[0]);
                 $card2 = new PokerCard($action->params[1]);
                 $card3 = new PokerCard($action->params[2]);
                 $log[] = '** Dealing Flop ** [ ' . $card1->shortname() . ', ' . $card2->shortname() . ', ' . $card3->shortname() . ' ]';
                 break;
             case 'turn':
                 $card = new PokerCard($action->params[0]);
                 $log[] = '** Dealing Turn ** [ ' . $card->shortname() . ' ]';
                 break;
             case 'river':
                 $card = new PokerCard($action->params[0]);
                 $log[] = '** Dealing River ** [ ' . $card->shortname() . ' ]';
                 break;
             case 'blind':
                 $log[] = $action->player->user->realname . ' posts ' . $action->params['blind'] . ' blind [' . $action->params['value'] . ']';
                 break;
             case 'check':
                 $log[] = $action->player->user->realname . ' checks';
                 break;
             case 'call':
             case 'bet':
                 $log[] = $action->player->user->realname . ' ' . ($action->params['allin'] == TRUE ? 'is all-In' : $action->action . 's') . ' [' . $action->params['value'] . ']';
                 break;
             case 'raise':
                 $log[] = $action->player->user->realname . ' ' . ($action->params['allin'] == TRUE ? 'is all-In' : $action->action . 's') . ' [' . $action->params['own_value'] . ']';
                 break;
             case 'fold':
                 $log[] = $action->player->user->realname . ' folds';
                 break;
             case 'showdown':
                 if ($action->params['player_cards'] == FALSE) {
                     // all others folded
                     foreach ($action->params['winners'] as $key => $value) {
                         $log[] = $action->params['game']['players'][$key]['name'] . ' does not show cards.';
                         $log[] = $action->params['game']['players'][$key]['name'] . ' wins ' . $value;
                     }
                 } else {
                     // real showdown
                     foreach ($action->params['player_cards'] as $key => $value) {
                         $card1 = new PokerCard($value[0]);
                         $card2 = new PokerCard($value[1]);
                         $log[] = $action->params['game']['players'][$key]['name'] . ' shows [ ' . $card1->shortname() . ', ' . $card2->shortname() . ' ] a ' . $action->params['player_hands'][$key];
                     }
                     /*foreach ($action->params['winning_hand'] as $key => $value) {
                           $log[] = 'Winning hand: '.$value;
                       }//*/
                     foreach ($action->params['winners'] as $key => $value) {
                         $log[] = $action->params['game']['players'][$key]['name'] . ' wins ' . $value . ' with a ' . $action->params['player_hands'][$key];
                     }
                 }
                 break;
         }
     }
     return $log;
 }