36 lines
957 B
JavaScript
36 lines
957 B
JavaScript
export class Game {
|
|
/**
|
|
* A number guessing game.
|
|
* @param {number} minimum - The minimum number to guess.
|
|
* @param {number} maximum - The maximum number to guess.
|
|
*/
|
|
constructor(minimum = 1, maximum = 100) {
|
|
const seed = Math.random();
|
|
|
|
this.secretNumber = Math.ceil(seed * maximum - minimum) + minimum;
|
|
this.guesses = new Set();
|
|
|
|
console.log(`Guess the number between ${minimum} and ${maximum}.`);
|
|
}
|
|
|
|
/**
|
|
* Make a guess for the secret number.
|
|
* @param {number} number - The number to guess.
|
|
*/
|
|
guess(number) {
|
|
if (this.guesses.has(number)) {
|
|
return 'You already guessed that number!';
|
|
}
|
|
|
|
this.guesses.add(number);
|
|
|
|
if (number < this.secretNumber) {
|
|
return 'Too low!';
|
|
} else if (number > this.secretNumber) {
|
|
return 'Too high!';
|
|
} else if (number === this.secretNumber) {
|
|
return `Correct! You guessed the number in ${this.guesses.size} attempts.`;
|
|
}
|
|
}
|
|
}
|