Цитата:
Неужели это никак нельзя обойти? |
Цитата:
var i = 5 ; while(--i) alert(i) ; Всё работает. Похоже, проблема в вашем коде |
Цитата:
while (score<10) { var text = prompt("К - камень, Н - ножницы, Б - бумага", ""); var UserChoice = text.toUpperCase(); var rnd = Math.random(); if (rnd<=0.33) CompChoice = "К"; if (rnd>0.33 && rnd<=0.66) CompChoice = "Н"; if (rnd>0.66) CompChoice = "Б"; if (UserChoice == CompChoice) { score+=1; alert("Вы выиграли! Ваш счёт: " + score); } else { score-=1; alert("Вы проиграли! Ваш счёт: " + score); } } alert("Поздравляем! Вы прошли первый уровень сложности!"); |
GTG, конечно, ведь у вас переменная score не определена
var score = 0 ; while (score<10) { var text = prompt("К - камень, Н - ножницы, Б - бумага", ""); var UserChoice = text.toUpperCase(); var rnd = Math.random(); if (rnd<=0.33) CompChoice = "К"; if (rnd>0.33 && rnd<=0.66) CompChoice = "Н"; if (rnd>0.66) CompChoice = "Б"; if (UserChoice == CompChoice) { score+=1; alert("Вы выиграли! Ваш счёт: " + score); } else { score-=1; alert("Вы проиграли! Ваш счёт: " + score); } } alert("Поздравляем! Вы прошли первый уровень сложности!"); |
Цитата:
|
Заметил такую проблему - иногда при вводе буквы в поле ввода от prompt, никаких алертов не выдается, и снова появляется поле prompt. На мой взгляд, я рассмотрел все ситуации - никак не пойму в чём дело.
var CompChoice; var score=0; while (score<10) { var text = prompt("К - камень, Н - ножницы, Б - бумага", ""); var UserChoice = text.toUpperCase(); var rnd = Math.floor(Math.random() * 27 + 1); if (rnd<10) CompChoice = "К"; if (rnd>=10 && rnd<19) CompChoice = "Н"; if (rnd>=19) CompChoice = "Б"; if (UserChoice == CompChoice) { score+=0; alert("Ничья! Ваш счёт: " + score); } else { if (UserChoice == "K" && CompChoice == "Н") { score+=1; alert("Вы выиграли! Ваш счёт: " + score); } if (UserChoice == "K" && CompChoice == "Б") { score-=1; alert("Вы проиграли! Ваш счёт: " + score); } if (UserChoice == "Н" && CompChoice == "Б") { score+=1; alert("Вы выиграли! Ваш счёт: " + score); } if (UserChoice == "Н" && CompChoice == "К") { score-=1; alert("Вы проиграли! Ваш счёт: " + score); } if (UserChoice == "Б" && CompChoice == "К") { score+=1; alert("Вы выиграли! Ваш счёт: " + score); } if (UserChoice == "Б" && CompChoice == "Н") { score-=1; alert("Вы проиграли! Ваш счёт: " + score); } if (UserChoice == null || UserChoice == "" || (UserChoice != "К" && UserChoice != "Н" && UserChoice != "Б")) { score-=1; alert("Ваш счёт: " + score); } } } alert("Поздравляем! Вы прошли игру!"); P.S. Простите, если я совсем дурак(( P.P.S. Знаю, что конструкция else лишняя, это я вставил её на всякий случай - но всё равно всё аналогично. |
возможно вы вводите символы не одно из этих трех: к, н, б. вот из за этого скорей всего и не работает
|
var CompChoice; var score=0; while (score<10) { var text = prompt("К - камень, Н - ножницы, Б - бумага", ""); if(text == null) { score -= 1 ; alert("Ваш счёт: " + score) ; continue ; } ; var UserChoice = text.toUpperCase(); var rnd = Math.floor(Math.random() * 27 + 1); if (rnd<10) CompChoice = "К"; if (rnd>=10 && rnd<19) CompChoice = "Н"; if (rnd>=19) CompChoice = "Б"; if (UserChoice == CompChoice) { score+=0; alert("Ничья! Ваш счёт: " + score); } else { if (UserChoice == "K" && CompChoice == "Н") { score+=1; alert("Вы выиграли! Ваш счёт: " + score); } if (UserChoice == "K" && CompChoice == "Б") { score-=1; alert("Вы проиграли! Ваш счёт: " + score); } if (UserChoice == "Н" && CompChoice == "Б") { score+=1; alert("Вы выиграли! Ваш счёт: " + score) } if (UserChoice == "Н" && CompChoice == "К") { score-=1; alert("Вы проиграли! Ваш счёт: " + score); } if (UserChoice == "Б" && CompChoice == "К") { score+=1; alert("Вы выиграли! Ваш счёт: " + score); } if (UserChoice == "Б" && CompChoice == "Н") { score-=1; alert("Вы проиграли! Ваш счёт: " + score); } if(UserChoice == "" || (UserChoice != "К" && UserChoice != "Н" && UserChoice != "Б")) { score-=1; alert("Ваш счёт: " + score); } } } alert("Поздравляем! Вы прошли игру!"); |
Часовой пояс GMT +3, время: 10:21. |