Code Coverage |
||||||||||
Classes and Traits |
Functions and Methods |
Lines |
||||||||
| Total | |
0.00% |
0 / 1 |
|
0.00% |
0 / 5 |
CRAP | |
0.00% |
0 / 17 |
| Rasb14\Guess\Guess | |
0.00% |
0 / 1 |
|
0.00% |
0 / 5 |
132.00 | |
0.00% |
0 / 17 |
| __construct | |
0.00% |
0 / 1 |
2.00 | |
0.00% |
0 / 3 |
|||
| random | |
0.00% |
0 / 1 |
2.00 | |
0.00% |
0 / 2 |
|||
| tries | |
0.00% |
0 / 1 |
2.00 | |
0.00% |
0 / 1 |
|||
| number | |
0.00% |
0 / 1 |
2.00 | |
0.00% |
0 / 1 |
|||
| makeGuess | |
0.00% |
0 / 1 |
56.00 | |
0.00% |
0 / 10 |
|||
| <?php | |
| namespace Rasb14\Guess; | |
| /** | |
| * Guess my number, a class supporting the game through GET, POST and SESSION. | |
| */ | |
| class Guess | |
| { | |
| /** | |
| * @var int $number The current secret number. | |
| * @var int $tries Number of tries a guess has been made. | |
| */ | |
| private $number; | |
| private $tries; | |
| /** | |
| * Constructor to initiate the object with current game settings, | |
| * if available. Randomize the number if null is sent in. | |
| * | |
| * @param int $number The current secret number, default -1 to initiate | |
| * the number from start. | |
| * @param int $tries Number of tries a guess has been made, | |
| * default 6. | |
| */ | |
| public function __construct(int $number = -1, int $tries = 6) | |
| { | |
| $this->number = $number; | |
| $this->tries = $tries; | |
| } | |
| /** | |
| * Randomize the secret number between 1 and 100 to initiate a new game. | |
| * | |
| * @return void | |
| */ | |
| public function random() | |
| { | |
| $this->number = rand(0, 100); | |
| } | |
| /** | |
| * Get number of tries left. | |
| * | |
| * @return int as number of tries made. | |
| */ | |
| public function tries() | |
| { | |
| return $this->tries; | |
| } | |
| /** | |
| * Get the secret number. | |
| * | |
| * @return int as the secret number. | |
| */ | |
| public function number() | |
| { | |
| return $this->number; | |
| } | |
| /** | |
| * Make a guess, decrease remaining guesses and return a string stating | |
| * if the guess was correct, too low or to high or if no guesses remains. | |
| * | |
| * @throws GuessException when guessed number is out of bounds. | |
| * | |
| * @return string to show the status of the guess made. | |
| */ | |
| public function makeGuess($number) | |
| { | |
| if (is_int($number) && $number > 0 && $number <= 100) { | |
| if ($this->tries <= 0) { | |
| return "Sorry but it seems you have used up all of your guesses."; | |
| } else { | |
| $this->tries--; | |
| if ($this->number == $number) { | |
| return "Your guess was correct."; | |
| } elseif ($this->number < $number) { | |
| return "Your guess was too high."; | |
| } else { | |
| return "Your guess was too low."; | |
| } | |
| } | |
| } else { | |
| throw new GuessException("Number is only allowed to be an integer between 1 and 100."); | |
| } | |
| } | |
| } |