File "GamePlayer.php"
Full Path: /home/trinadezambia/public_html/gambling/app/Games/GamePlayer.php
File size: 2.52 KB
MIME-type: text/x-php
Charset: utf-8
<?php
namespace App\Games;
use Exception;
class GamePlayer {
private $games = [
'head_tail' => HeadTail::class,
'rock_paper_scissors' => RockPaperScissors::class,
'spin_wheel' => SpinWheel::class,
'number_guess' => NumberGuess::class,
'dice_rolling' => DiceRolling::class,
'card_finding' => CardFinding::class,
'number_slot' => NumberSlot::class,
'number_pool' => PoolNumber::class,
'roulette' => Roulette::class,
'casino_dice' => CasinoDice::class,
'keno' => Keno::class,
'blackjack' => BlackJack::class,
'mines' => Mines::class,
'poker' => Poker::class,
'color_prediction' => ColorPrediction::class,
'crazy_times' => CrazyTimes::class,
'dream_catcher' => DreamCatcher::class,
'andar_bahar' => AndarBahar::class,
'pai_gow_poker' => PaiGowPoker::class,
];
private $playingGame;
private $isDemo;
private $fromApi;
public function __construct($alias, $isDemo, $fromApi = false) {
$this->playingGame = $alias;
$this->isDemo = $isDemo;
$this->fromApi = $fromApi;
}
public function startGame() {
$gameName = $this->playingGame;
try {
$gameClass = $this->games[$gameName];
} catch (\Exception $e) {
if ($this->fromApi) {
$notify[] = "The game $gameName not found";
return responseError('not_found', $notify);
}
throw new Exception("The game $gameName not found");
}
$instance = new $gameClass;
$instance->demoPlay = $this->isDemo ? true : false;
$instance->fromApi = $this->fromApi ?? false;
return $instance->play();
}
public function completeGame() {
$gameName = $this->playingGame;
try {
$gameClass = $this->games[$gameName];
} catch (\Exception $e) {
if ($this->fromApi) {
$notify[] = "The game $gameName not found";
return responseError('not_found', $notify);
}
throw new Exception("The game $gameName not found");
}
$instance = new $gameClass;
$instance->demoPlay = $this->isDemo ? true : false;
$instance->fromApi = $this->fromApi ?? false;
return $instance->complete();
}
}