21.04.2013, 16:58
|
Интересующийся
|
|
Регистрация: 19.04.2013
Сообщений: 10
|
|
Сообщение от Hekumok
|
GTG, а, ну в вашем случае лучше с while
|
Да, но дело в том, что все алерты и так далее, что прописаны внутри while, не выскакивают.
Неужели это никак нельзя обойти?
|
|
21.04.2013, 21:50
|
|
✔
|
|
Регистрация: 04.06.2012
Сообщений: 513
|
|
Сообщение от GTG
|
Да, но дело в том, что все алерты и так далее, что прописаны внутри while, не выскакивают.
|
Да ладно?
var i = 5 ;
while(--i)
alert(i) ;
Всё работает. Похоже, проблема в вашем коде
__________________
★ ²º¹³ ☆
|
|
21.04.2013, 22:33
|
Интересующийся
|
|
Регистрация: 19.04.2013
Сообщений: 10
|
|
Сообщение от Hekumok
|
Всё работает. Похоже, проблема в вашем коде
|
Вот такой код сразу выдает сообщение "Поздравляем! Вы прошли первый уровень сложности!" без всяких там "Вы выиграли! Ваш счет: " и т.д.:
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("Поздравляем! Вы прошли первый уровень сложности!");
|
|
21.04.2013, 22:51
|
|
✔
|
|
Регистрация: 04.06.2012
Сообщений: 513
|
|
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("Поздравляем! Вы прошли первый уровень сложности!");
__________________
★ ²º¹³ ☆
|
|
21.04.2013, 22:56
|
Интересующийся
|
|
Регистрация: 19.04.2013
Сообщений: 10
|
|
Сообщение от Hekumok
|
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("Поздравляем! Вы прошли первый уровень сложности!");
|
Спасибо большое, не замечаю никогда таких дурацких ошибок((
|
|
22.04.2013, 08:17
|
Интересующийся
|
|
Регистрация: 19.04.2013
Сообщений: 10
|
|
Заметил такую проблему - иногда при вводе буквы в поле ввода от 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 лишняя, это я вставил её на всякий случай - но всё равно всё аналогично.
|
|
22.04.2013, 16:19
|
Профессор
|
|
Регистрация: 27.04.2012
Сообщений: 1,410
|
|
возможно вы вводите символы не одно из этих трех: к, н, б. вот из за этого скорей всего и не работает
|
|
22.04.2013, 17:23
|
|
✔
|
|
Регистрация: 04.06.2012
Сообщений: 513
|
|
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("Поздравляем! Вы прошли игру!");
__________________
★ ²º¹³ ☆
|
|
|
|