johnromanoff/project-lvl1-s408

View on GitHub
src/Games/Calc.php

Summary

Maintainability
A
0 mins
Test Coverage
<?php

namespace BrainGames\Games\Calc;

use function \BrainGames\Cli\run;

const DESCRIPTION = 'What is the result of the expression?';
const OPERATORS = ['+', '-', '*'];

function getRandomOperator($operators)
{
    return $operators[rand(0, count($operators) - 1)];
}

function calcGame()
{
    $generateData = function () {
        $firstNumber = rand(1, 10);
        $secondNumber = rand(1, 10);
        $operator = getRandomOperator(OPERATORS);
        $question = "{$firstNumber} {$operator} {$secondNumber}";
        switch ($operator) {
            case '+':
                $correctAnswer = $firstNumber + $secondNumber;
                break;
            case '-':
                $correctAnswer = $firstNumber - $secondNumber;
                break;
            case '*':
                $correctAnswer = $firstNumber * $secondNumber;
                break;
        }
        return [ 'question' => $question, 'correctAnswer' => "{$correctAnswer}" ];
    };
    return run($generateData, DESCRIPTION);
}