Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 21.04.2013, 16:58
GTG GTG вне форума
Интересующийся
Отправить личное сообщение для GTG Посмотреть профиль Найти все сообщения от GTG
 
Регистрация: 19.04.2013
Сообщений: 10

Сообщение от Hekumok Посмотреть сообщение
GTG, а, ну в вашем случае лучше с while
Да, но дело в том, что все алерты и так далее, что прописаны внутри while, не выскакивают.
Неужели это никак нельзя обойти?
Ответить с цитированием
  #12 (permalink)  
Старый 21.04.2013, 21:50
Аватар для Hekumok
Отправить личное сообщение для Hekumok Посмотреть профиль Найти все сообщения от Hekumok
 
Регистрация: 04.06.2012
Сообщений: 513

Сообщение от GTG
Да, но дело в том, что все алерты и так далее, что прописаны внутри while, не выскакивают.
Да ладно?
var i = 5 ;
while(--i)
 alert(i) ;

Всё работает. Похоже, проблема в вашем коде
__________________
★ ²º¹³ ☆
Ответить с цитированием
  #13 (permalink)  
Старый 21.04.2013, 22:33
GTG GTG вне форума
Интересующийся
Отправить личное сообщение для GTG Посмотреть профиль Найти все сообщения от GTG
 
Регистрация: 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("Поздравляем! Вы прошли первый уровень сложности!");
Ответить с цитированием
  #14 (permalink)  
Старый 21.04.2013, 22:51
Аватар для Hekumok
Отправить личное сообщение для Hekumok Посмотреть профиль Найти все сообщения от Hekumok
 
Регистрация: 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("Поздравляем! Вы прошли первый уровень сложности!");
__________________
★ ²º¹³ ☆
Ответить с цитированием
  #15 (permalink)  
Старый 21.04.2013, 22:56
GTG GTG вне форума
Интересующийся
Отправить личное сообщение для GTG Посмотреть профиль Найти все сообщения от GTG
 
Регистрация: 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("Поздравляем! Вы прошли первый уровень сложности!");
Спасибо большое, не замечаю никогда таких дурацких ошибок((
Ответить с цитированием
  #16 (permalink)  
Старый 22.04.2013, 08:17
GTG GTG вне форума
Интересующийся
Отправить личное сообщение для GTG Посмотреть профиль Найти все сообщения от GTG
 
Регистрация: 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 лишняя, это я вставил её на всякий случай - но всё равно всё аналогично.
Ответить с цитированием
  #17 (permalink)  
Старый 22.04.2013, 16:19
Профессор
Отправить личное сообщение для skrudjmakdak Посмотреть профиль Найти все сообщения от skrudjmakdak
 
Регистрация: 27.04.2012
Сообщений: 1,410

возможно вы вводите символы не одно из этих трех: к, н, б. вот из за этого скорей всего и не работает
Ответить с цитированием
  #18 (permalink)  
Старый 22.04.2013, 17:23
Аватар для Hekumok
Отправить личное сообщение для Hekumok Посмотреть профиль Найти все сообщения от Hekumok
 
Регистрация: 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("Поздравляем! Вы прошли игру!");
__________________
★ ²º¹³ ☆
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Добавить пробелы в число после рандома RuSS_lan Общие вопросы Javascript 3 05.01.2013 18:05
определить число целое или нет dadli Общие вопросы Javascript 29 14.06.2012 22:59
Как найти наибольшее число и ввести его на экран? Ivan152 Оффтопик 2 20.05.2012 20:13
Округлить целое число glebovsky Общие вопросы Javascript 5 12.02.2012 17:38
Разбить число на миссив, как ? Bogdan808 Общие вопросы Javascript 20 01.09.2010 18:19