ЙажаСценарий / Говнокод #27666 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
let randomNum = Math.floor(Math.random() * 10) + 1;
let inputNum

do {
  inputNum = prompt('Угадай циферку!')
  if (inputNum < randomNum) {
    alert('Недобор');
  } else if (inputNum > randomNum) {
    alert('Перебор');
  } else if (typeof inputNum === "string") {
    alert('ну не, циферку же!');
  } else if (inputNum == null || inputNum == '') {
    alert('Покасики!');
  } else if (inputNum === randomNum) { 
    alert('Угадал!!!'); break;
    }
} while (inputNum != randomNum);

Оно сначала совсем не работало. Потом вдруг заработало. Потом я ему дал полежать, настояться, и оно работать перестало опять О_о моя нипанимать

Запостил: shuric shuric, (Updated )

Комментарии (8) RSS

  • А как не работало? Выводило неожиданный результат или завершалось досрочно?

    К слову, в 17-й строке у нас «слабое» сравнение (!=), а в 14-й — строгое (===). Это может быть источником досрочного завершения.
    Ответить
  • > alert

    Имхо, надо было в основной prompt эти сообщения сувать. Удобнее будет.
    Ответить
    • Ага, лишний клик не надо будет делать. При вводе новой догадки сразу будет видно, в чём ошибся в прошлый раз.
      Ответить
  • >Недобор
    Умца-умца

    >Перебор
    Педобир

    >Покасики
    Покакусики

    >Угадал
    g: "изба гадальня анекдот"
    Ответить
  • чувак, у меня дурные вести для тебя

    ``prompt`` всегда возвращает string. Его нужно ``parseInt``ить.
    Ответить
    • Значит, знаки «меньше» и «больше» кастуют в число, поэтому первые две ветви работают правильно. А на третьей ветке облом, потому что inputNum всегда строка. Т. е. когда игрок угадал-таки число, ему об этом не сообщат.
      Ответить
  • Кароч! Вы все классные, то ли во всём, то ли практически во всём - правы))) Я сегодня на работе таки отрефакторил это и починил (частично сам, частично помогли). Пощу результат дабы подтвердить ваши слова. Не очень понял про Alert, но обдумаю и осознаю!

    let randomNum = Math.floor(Math.random() * 10) + 1;
    let inputNum

    do {
    inputNum = prompt('Угадай циферку!')
    if (inputNum == null || inputNum == '') {
    alert('Покасики!'); break;
    } else if (inputNum > randomNum) {
    alert('Перебор');
    } else if (!parseInt(inputNum)) {
    alert('ну не, циферку же!');
    } else if (inputNum < randomNum) {
    alert('Недобор');
    } else if (+inputNum === randomNum) {
    alert('Угадал!!!'); break;
    }
    } while (inputNum != randomNum);
    Ответить
    • > Не очень понял про Alert

      Как-то так:
      let nextMsg = "Угадай циферку!"
      
      do {
         inputNum = prompt(nextMsg)
         ...
         } else if (inputNum < randomNum) {
            nextMsg = "Недобор"
         }
         ...
      Ответить

Добавить комментарий для shuric Отменить ответ

Семь раз отмерь — один отрежь, guest!

    А не использовать ли нам bbcode?


    8