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); }
/** * 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; }