From 04fa0eb853e549c4f85455bc5b977b4bed0c8ee9 Mon Sep 17 00:00:00 2001 From: Ben Harris Date: Wed, 26 Apr 2017 00:25:22 -0400 Subject: [PATCH] fix tictactoe --- paper/sr_proj_paper.pdf | Bin 151399 -> 151523 bytes paper/sr_proj_paper.tex | 59 +++++++++---------------------------- src/BenBot.php | 19 ++---------- src/Commands/TicTacToe.php | 30 +++++++++++++++++-- 4 files changed, 44 insertions(+), 64 deletions(-) diff --git a/paper/sr_proj_paper.pdf b/paper/sr_proj_paper.pdf index e4a610d680c2aa7d98e992ab2465fab2832b7789..f48ddfd636bf3f84bf166a9a56ab35161f91b2de 100644 GIT binary patch delta 35449 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�vS{vOc>XT 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 DBGG=i delta 35496 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['active'] && $msg->author->id === $this->game['players'][$this->game['turn']]) { - $move = intval($msg->content); - if ($move > 0 && $move < 10) { - $player = array_search($msg->author->id, $this->game['players']); - $response = Commands\TicTacToe::handleMove($player, $move); - Utils::send($msg, $response); - return; - } else { - if ($str->toLowerCase() == "stop" || $str->toLowerCase() == ";tic stop") { - $this->game = [ - 'active' => false, - ]; - Utils::send($msg, "game stopped"); - return; - } - Utils::send($msg, "enter a valid move (1-9) or quit the game with `;tic stop`"); - return; - } + Commands\TicTacToe::handleMove($msg); + return; } diff --git a/src/Commands/TicTacToe.php b/src/Commands/TicTacToe.php index 9e6bf45..35976e7 100644 --- a/src/Commands/TicTacToe.php +++ b/src/Commands/TicTacToe.php @@ -58,6 +58,7 @@ class TicTacToe ], 'turn' => ":x:", 'active' => true, + 'move_count' => 0, ]; foreach ($msg->mentions as $mention) { self::$bot->game['players'][":o:"] = $mention->id; @@ -69,14 +70,37 @@ class TicTacToe } - public static function handleMove($player, $move) + public static function handleMove($msg) + { + $player = self::$bot->game['turn']; + $text = $msg->content; + $move = intval($text); + if (strtolower($text) == "stop" || strtolower($text) == ";tic stop") { + self::stopGame($msg, []); + return; + } + if ($move > 0 && $move < 10) { + Utils::send($msg, self::doMove($player, $move)); + return; + } else { + Utils::send($msg, "invalid move. enter a number 1-9 or quit with `;tic stop`"); + return; + } + } + + + public static function doMove($player, $move) { if (self::placePieceAt($move, $player)) { if (self::checkWin()) { self::$bot->game['active'] = false; return "<@" . self::$bot->game['players'][self::$bot->game['turn']] . "> won"; + } elseif (self::$bot->game['move_count'] >= 9) { + self::$bot->game['active'] = false; + return "it's a tie"; } else { self::$bot->game['turn'] = self::$bot->game['turn'] == ":x:" ? ":o:" : ":x:"; + self::$bot->game['move_count']++; return self::printBoard() . "\n<@" . self::$bot->game['players'][self::$bot->game['turn']] . ">, it's your turn!"; } } else { @@ -88,7 +112,9 @@ class TicTacToe public static function stopGame($msg, $args) { Utils::deleteMessage($msg); - self::$bot->game = []; + self::$bot->game = [ + 'active' => false, + ]; Utils::send($msg, "game stopped")->then(function ($result) { self::$bot->loop->addTimer(5, function ($timer) use ($result) { Utils::deleteMessage($result);