public function betRequest($game_state) { $gameState = GameState::fromArray($game_state); $myself = $gameState->getMyself(); $myCards = $myself->getHand(); $cardAnalizer = new CardAnalizer(); $decision = new Decisions($gameState); if ($gameState->isPreFlop()) { if ($cardAnalizer->isHighPair($myCards)) { $bet = $myself->stack / 2; return (int) $bet; } if ($cardAnalizer->isPair($myCards)) { $callAmount = $this->call($gameState); return (int) $callAmount; } if (!$gameState->isSomeBodyRaised()) { $callAmount = $this->call($gameState); return (int) $callAmount; } $c1Rank = CardHelper::mapRankToValues($myCards[0]->rank); $c2Rank = CardHelper::mapRankToValues($myCards[1]->rank); if ($c1Rank > 10 || $c2Rank > 10) { $callAmount = $this->call($gameState); return (int) $callAmount; } return 0; } else { if ($cardAnalizer->IHavePair($gameState->getAllCards(), $gameState->getCommunityCards())) { $minBet = $this->betMinimumRaise($gameState); return (int) $minBet; } $rank = Rainman::getRank($gameState->getAllCards()); $noService = array(0, 1, 2, 3); if (!in_array($rank, $noService)) { if (rand(0, 1)) { $minBet = $this->betMinimumRaise($gameState); return (int) $minBet; } $callAmount = $this->call($gameState); return (int) $callAmount; } } return 0; }
<?php /** * Created by PhpStorm. * User: gmanner * Date: 02/10/15 * Time: 11:29 */ $_POST['action'] = 'bet_request'; $_POST['game_state'] = file_get_contents('sample_gamestate.json'); ob_start(); require_once 'index.php'; $output = ob_get_clean(); echo 'Game bets: ' . $output . ' -> ' . (is_numeric($output) ? 'OK' : 'FAIL') . "\n"; $analizer = new CardAnalizer(); $testCards = json_decode('[ { "rank": "4", "suit": "clubs" }, { "rank": "5", "suit": "hearts" }, { "rank": "6", "suit": "clubs" } ]'); var_dump($analizer->isSuited($testCards));