Advertisement
avr39ripe

jsNumberGuessGame

Feb 5th, 2021
227
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
HTML 2.52 KB | None | 0 0
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4.     <meta charset="UTF-8">
  5.     <title>Study</title>
  6. </head>
  7. <body>
  8.     <script>
  9.         'use strict'
  10.         /*10. Игра «Угадай число». Предложить пользователю загадать
  11.         число от 0 до 100 и отгадать его следующим способом:
  12.         каждую итерацию цикла делите диапазон чисел пополам,
  13.         записываете результат в N и спрашиваете у пользователя
  14.         «Ваше число > N, < N или == N?». В зависимости от того
  15.        что указал пользователь, уменьшаете диапазон. Начальный
  16.        диапазон от 0 до 100, поделили пополам и получили 50.
  17.        Если пользователь указал, что его число > 50, то изменили
  18.         диапазон на от 51 до 100. И так до тех пор, пока пользователь не выберет == N.
  19.         */
  20.  
  21.         const rangeMin = 0;
  22.         const rangeMax = 100;
  23.  
  24.         let left = rangeMin;
  25.         let right = rangeMax;
  26.         let mid;
  27.         let guess;
  28.         let answer;
  29.         let steps = 0;
  30.         let incorrect = true;
  31.         let found = false;
  32.  
  33.         while (left <= right) {
  34.            mid = Math.floor((left + right) / 2);
  35.            ++steps;
  36.  
  37.            do {
  38.                answer = prompt(`Is your guessed number - ${mid} ? "==" or "<" or ">"`);
  39.                 incorrect = !(answer == '==' || answer == '<' || answer == '>');
  40.                 if (incorrect) {
  41.                     alert('Invalid input! Choose one from "==", "<", ">"')
  42.                 }
  43.             } while (incorrect);
  44.  
  45.             if (answer == '==') {
  46.                 found = true;
  47.                 break;
  48.             } else if (answer == '>') {
  49.                 left = mid + 1;
  50.             }
  51.             else {
  52.                 right = mid - 1;
  53.             }
  54.             alert(`${answer == '>' ? 'Greater' : 'Smaller'}?  OK, continue guessing...`);
  55.             console.log(`left ${left} - right ${right}`);
  56.         }
  57.         if (!found) {
  58.             alert('Really? You lie me at some point! Did you answer honestly? :(');
  59.         }
  60.         else {
  61.             alert(`Hurra! I find your guessed number in ${steps} steps!`);
  62.         }
  63.         alert(`GAME OVER! :)`);
  64.     </script>
  65. </body>
  66. </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement