- Сначала мы проверяем, было ли "загадано" число. Если оно не было "загадано" (значение равно -1), то возвращает соответствующую строчку и завершаем функцию.
- Далее проверяем версию игрока. Если она равна "загаданному" числу, то выводим строчку, что игрок угадал. И присваиваем переменной number значение -1, обозначая тем самым, что игра окончена.
- Если "загаданное" число больше или меньше версии игрока, выводим соответствующую подсказку.
Вот и всё, игра готова. Давай попробуем поиграть.
Вызови
check(10).
Результат:
"Чтобы начать новую игру, вызовите newGame()". Всё верно, число ещё не "загадано".
Теперь необходимо начать игру
newGame().
Результат:
"Новая игра. Угадайте число от 0 до 100.". Всё верно.
Начнём угадывать число
check(50). Алгоритм будет подсказывать нам ответами
"Больше!" или
"Меньше!".
Поиграй дальше и попробуй угадать число.
Маленькая хитрость, чтобы быстрее угадать: дели интервал, в котором находится число, пополам и вызывай функцию со средним значением.
Например, загадано число 68.
Искомый интервал от 0 до 100. Середина этого интервала — 50. Значит, сначала проверь
check(50). Результат будет
"Больше!".
Значит, новый интервал для поиска сократился вдвое и стал от 51 до 100.
Его середина равна 75. Проверяем
check(75). Результат будет
"Меньше!".
И снова интервал сократился вдвое: от 51 до 74. Середина примерно 62.
Проверяем
check(62). Результат будет
"Больше!".
Далее интервал от 63 до 74. Середина 68. Проверяем
check(68). Результат будет
"Поздравляем! Вы угадали число 68".
Сокращение интервала поиска вдвое — это самый быстрый способ угадать число, если подсказками могут быть либо "больше", либо "меньше".