specialsnipe/php-project-lvl1

View on GitHub
src/Games/Nod.php

Summary

Maintainability
A
0 mins
Test Coverage
<?php

namespace Snipe\Nod;

use function Snipe\Engine\run;

use const Snipe\Engine\ROUNDS_COUNT;

const DESCRIPTION = 'Find the greatest common divisor of given numbers.';

function findDivisor(int $firstNumber, int $secondNumber)
{
    $min = min($firstNumber, $secondNumber);
    $result = null;
    for ($i = 1; $i <= $min; $i++) {
        if ($firstNumber % $i === 0 && $secondNumber % $i === 0) {
            $result = $i;
        }
    }
    return $result;
}

function runGame()
{
    $gameData = [];
    for ($i = 0; $i < ROUNDS_COUNT; $i++) {
        $firstNumber = mt_rand(1, 100);
        $secondNumber = mt_rand(1, 100);
        $rightAnswer = (string)findDivisor($firstNumber, $secondNumber);
        $expression = "{$firstNumber} {$secondNumber}";
        $gameData[] = [$expression, $rightAnswer];
    }
    run(DESCRIPTION, $gameData);
}