Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <title>Study</title>
- </head>
- <body>
- <script>
- 'use strict'
- /*10. Игра «Угадай число». Предложить пользователю загадать
- число от 0 до 100 и отгадать его следующим способом:
- каждую итерацию цикла делите диапазон чисел пополам,
- записываете результат в N и спрашиваете у пользователя
- «Ваше число > N, < N или == N?». В зависимости от того
- что указал пользователь, уменьшаете диапазон. Начальный
- диапазон от 0 до 100, поделили пополам и получили 50.
- Если пользователь указал, что его число > 50, то изменили
- диапазон на от 51 до 100. И так до тех пор, пока пользователь не выберет == N.
- */
- const rangeMin = 0;
- const rangeMax = 100;
- let left = rangeMin;
- let right = rangeMax;
- let mid;
- let guess;
- let answer;
- let steps = 0;
- let incorrect = true;
- let found = false;
- while (left <= right) {
- mid = Math.floor((left + right) / 2);
- ++steps;
- do {
- answer = prompt(`Is your guessed number - ${mid} ? "==" or "<" or ">"`);
- incorrect = !(answer == '==' || answer == '<' || answer == '>');
- if (incorrect) {
- alert('Invalid input! Choose one from "==", "<", ">"')
- }
- } while (incorrect);
- if (answer == '==') {
- found = true;
- break;
- } else if (answer == '>') {
- left = mid + 1;
- }
- else {
- right = mid - 1;
- }
- alert(`${answer == '>' ? 'Greater' : 'Smaller'}? OK, continue guessing...`);
- console.log(`left ${left} - right ${right}`);
- }
- if (!found) {
- alert('Really? You lie me at some point! Did you answer honestly? :(');
- }
- else {
- alert(`Hurra! I find your guessed number in ${steps} steps!`);
- }
- alert(`GAME OVER! :)`);
- </script>
- </body>
- </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement