diff --git a/Makefile b/Makefile index e6076b7..70642ff 100644 --- a/Makefile +++ b/Makefile @@ -17,4 +17,7 @@ brain-games: ./bin/brain-games brain-even: - ./bin/brain-even \ No newline at end of file + ./bin/brain-even + +brain-calc: + ./bin/brain-calc \ No newline at end of file diff --git a/composer.json b/composer.json index 4c17aa0..07e22d9 100644 --- a/composer.json +++ b/composer.json @@ -9,7 +9,6 @@ "files": [ "src/Engine.php", "src/Cli.php", - "src/Games/EvenGame/Module.php", "src/Utils/ConfigUtils.php", "src/Utils/ModuleUtils.php" ] @@ -25,7 +24,8 @@ }, "bin": [ "bin/brain-games", - "bin/brain-even" + "bin/brain-even", + "bin/brain-calc" ], "license": "MIT", "require-dev": { diff --git a/src/Engine.php b/src/Engine.php index dcb92d1..bf57623 100644 --- a/src/Engine.php +++ b/src/Engine.php @@ -4,14 +4,14 @@ use RuntimeException; -use function BrainGames\ConfigUtils\loadConfigurations; -use function BrainGames\ConfigUtils\loadModule; -use function BrainGames\ModuleUtils\getQuestionAnswerPairHandler; -use function BrainGames\ModuleUtils\getRulesDescription; -use function BrainGames\ModuleUtils\getText; -use function BrainGames\ModuleUtils\getUserName; -use function BrainGames\ModuleUtils\setTexts; -use function BrainGames\ModuleUtils\setUserName; +use function BrainGames\Utils\ConfigUtils\loadConfigurations; +use function BrainGames\Utils\ConfigUtils\loadModule; +use function BrainGames\Utils\ModuleUtils\getQuestionAnswerPairHandler; +use function BrainGames\Utils\ModuleUtils\getRulesDescription; +use function BrainGames\Utils\ModuleUtils\getText; +use function BrainGames\Utils\ModuleUtils\getUserName; +use function BrainGames\Utils\ModuleUtils\setTexts; +use function BrainGames\Utils\ModuleUtils\setUserName; use function cli\line; use function cli\prompt; @@ -26,7 +26,7 @@ function runBrainGame(string $moduleName): void function loadGame($moduleName): array { - $moduleFile = __DIR__ . '/Games/' . $moduleName . '/config.php'; + $moduleFile = __DIR__ . '/Games/' . $moduleName . '.php'; if (!file_exists($moduleFile)) { throw new RuntimeException("Module $moduleFile not found"); } diff --git a/src/Games/EvenGame.php b/src/Games/EvenGame.php new file mode 100644 index 0000000..9bb1a00 --- /dev/null +++ b/src/Games/EvenGame.php @@ -0,0 +1,37 @@ + questionHandler(); + + return $module; +}; + +/** + * Returns a question and its expected answer. + * + * - 0: The question (string) + * - 1: The expected answer (string) + * + * @return array{ + * 0: string, + * 1: string + * } + * @throws Exception + */ +function questionHandler(): array +{ + $question = random_int(1, 100); + $isEven = $question % 2 === 0; + return [$question, $isEven ? 'yes' : 'no']; +} diff --git a/src/Games/EvenGame/Module.php b/src/Games/EvenGame/Module.php deleted file mode 100644 index 28ba766..0000000 --- a/src/Games/EvenGame/Module.php +++ /dev/null @@ -1,26 +0,0 @@ - questionHandler()); - return $module; -}; diff --git a/src/Utils/ConfigUtils.php b/src/Utils/ConfigUtils.php index 7aad9d7..da6bc0a 100644 --- a/src/Utils/ConfigUtils.php +++ b/src/Utils/ConfigUtils.php @@ -1,6 +1,6 @@