/
index.php
59 lines (58 loc) · 1.85 KB
/
index.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
<?php
//user guesses a number between 1 and 100
//tells if higher or lower and when correct
//generates random number and displays range for guess
//calls guess() with randomNumber passed to it
if ($argc == 1 || !($argv[1] < $argv[2])){
do{
fwrite(STDOUT, "Enter min value: \n");
$min = (int)fgets(STDIN);
fwrite(STDOUT, "Enter max value: \n");
$max = (int)fgets(STDIN);
}while(!($min < $max));
}else{
$min = (int)$argv[1];
$max = (int)$argv[2];
}
function playGame($min, $max){
$randomNumber = mt_rand($min, $max);
fwrite(STDOUT, "Guess a number between $min and $max.\n");
//keeps track of user guesses
$guessNumber = 0;
guess($randomNumber, $guessNumber, $min, $max);
}
//asks for guess and compares to the random number that was
//passed to it and then calls response with
//the parameters of the random number and the user number
function guess($randomNumber, $guessNumber, $min, $max){
fwrite(STDOUT, 'Guess? ');
$userNumber = fgets(STDIN);
$guessNumber++;
response($min, $max, $randomNumber, $userNumber, $guessNumber);
}
//compares guess to number and responds with higher or lower
//if guess is correct, asks if user wants to play again
function response($min, $max, $randomNumber, $userNumber, $guessNumber){
if($randomNumber < $userNumber){
fwrite(STDOUT, "LOWER\n");
guess($randomNumber, $guessNumber, $min, $max);
}else if($randomNumber > $userNumber){
fwrite(STDOUT, "HIGHER\n");
guess($randomNumber, $guessNumber, $min, $max);
}
else{
fwrite(STDOUT, "GOOD GUESS!\n");
fwrite(STDOUT, "You guessed the number in {$guessNumber} guesses.\n");
//check to see if user wants to play again
fwrite(STDOUT, 'Play Again? (y/n): ');
//trim removes the enter key and spaces
$playAgain = trim(fgets(STDIN));
if($playAgain == 'y'){
//reset the game
playGame($min, $max);
}
}
}
//run game
playGame($min, $max);
?>