 
			
				19.04.2013, 20:22
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Интересующийся 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 19.04.2013 
					
					
					
						Сообщений: 10
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
			
			 
				Угадай число
			 
			
		
		
		
		Привет! Я начал изучать JS только вчера, вот попытался написать простой скрипт "Угадай число". Однако, проблема в том, что он даже не начинается... Проверял - не понял, в чем может быть дело (аналогичные скрипты работали, вроде). 
<script language="JavaScript">
function randomNumber(m,n) { return Math.random() * (n-m+1) + m }
alert("Добро пожаловать в шоу \"Угадай число!\"");
var m = parseInt(prompt("Введите нижнюю границу диапазона чисел", ""));
var n = parseInt(prompt("Введите верхнюю границу диапазона чисел", ""));
var number = randomNumber(m,n);
if (confirm("Число сгенерировано. Хотите попробовать его отгадать?")) {
	if (prompt("Введите число", "")==number) {
		if ((m-n)>=10 && (m-n)<=100)
			alert("Верно! Вы получаете 10 очков!");
		if((m-n)>100)
			alert("Верно! Вы получаете 100 очков!");
		if ((m-n)<10)
			alert("Верно! Вы получаете 1 очко!");
			}
	else
		alert("Неверно! Вы теряете 10 очков!");
	}
else {
	 if (confirm("Вы прощаетесь с нами?"))
		window.close();
	}
</script>
 
		
	
		
		
		
		
		
		
		
						  
				
				Последний раз редактировалось GTG, 19.04.2013 в 20:25.
				
				
			
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				19.04.2013, 20:25
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Интересующийся 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 19.04.2013 
					
					
					
						Сообщений: 10
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		 UPD: 
Проблема решена. Не нашел, как удалить тему. 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				19.04.2013, 20:34
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 18.01.2013 
					
					
					
						Сообщений: 1,098
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	| 
		
			Сообщение от GTG
			
		
	 | 
 
	| 
		 Не нашел, как удалить тему.
	 | 
 
	
 
 привыкай бро  
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				19.04.2013, 22:05
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Интересующийся 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 19.04.2013 
					
					
					
						Сообщений: 10
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		Хорошо. Собственно, всё равно возник вопрос по данному скрипту. 
Дело в том, что Math.random работает как-то не так...  
Я использую вот что:
 
var x = Math.floor(Math.random() * (max-min+1) + max);
 
но при, допустим, параметрах min = 10, max = 20 генерируемое число x получается равным 7. Как такое может быть?  
		
	
		
		
		
		
		
		
		
						  
				
				Последний раз редактировалось GTG, 19.04.2013 в 22:15.
				
				
			
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				19.04.2013, 22:54
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 28.02.2011 
					
					
					
						Сообщений: 351
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		 Во-первых, 
var x = Math.floor(Math.random() * (max-min+1) + min); 
а во-вторых, что-то вы напутали, т.к. по-вашему генерятся числа больше не менше 20 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				20.04.2013, 07:41
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Интересующийся 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 19.04.2013 
					
					
					
						Сообщений: 10
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	
		
			Сообщение от rgl
			 
		
	 | 
 
	
		Во-первых, 
var x = Math.floor(Math.random() * (max-min+1) + min); 
а во-вторых, что-то вы напутали, т.к. по-вашему генерятся числа больше не менше 20
	 | 
 
	
 
 Прошу прощения, +min, да. Генерируются числа меньше min. Проверено. 
Если же я напишу даже var x = Math.floor(Math.random() * (max-min+1) +  max), то генерируются числа меньше 20! А именно только что сгенерировалось 10!  
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				21.04.2013, 14:54
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Интересующийся 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 19.04.2013 
					
					
					
						Сообщений: 10
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		В общем, было обнаружено следующее: 
Если в явном виде инициализировать переменные  max и  min, например, так:
 
var min = 10;
var max = 25;
 
то число генерируется правильно - в диапазоне от  min до  max. 
Однако, если задать их таким образом:
 
var min = prompt("Enter min", "");
var max = prompt("Enter max", "");
то генерируемое число может получиться меньше  min. 
В чем проблема?
 P.S. Есть ли замена циклу while с возможностью контактирования с пользователем во время выполнения? 
		
	
		
		
		
		
		
		
		
						  
				
				Последний раз редактировалось GTG, 21.04.2013 в 15:14.
				
				
			
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				21.04.2013, 15:39
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 ✔ 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 04.06.2012 
					
					
					
						Сообщений: 513
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	| 
		
			Сообщение от GTG
			
		
	 | 
 
	
		Однако, если задать их таким образом: 
var min = prompt("Enter min", "");
var max = prompt("Enter max", "");
 
то генерируемое число может получиться меньше min. 
В чем проблема?
	 | 
 
	
 
 Потому что нужно делать так
 
var min = *!*+*/!*prompt("Enter min", "");
var max = *!*+*/!*prompt("Enter max", "");
alert([typeof min, typeof max]);
Так нужно делать, чтобы преобразовать введенную пользователем строку в число
 
	
 
	| 
		
			Сообщение от GTG
			
		
	 | 
 
	| 
		P.S. Есть ли замена циклу while с возможностью контактирования с пользователем во время выполнения?
	 | 
 
	
 
 Цикл for есть. Или что вы имеете ввиду?  
		
	
		
		
		
		
		
			
				__________________ 
				★ ²º¹³ ☆
			 
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				21.04.2013, 15:56
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Интересующийся 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 19.04.2013 
					
					
					
						Сообщений: 10
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	
		
			Сообщение от Hekumok
			 
		
	 | 
 
	
		Потому что нужно делать так 
var min = *!*+*/!*prompt("Enter min", "");
var max = *!*+*/!*prompt("Enter max", "");
alert([typeof min, typeof max]);
 
Так нужно делать, чтобы преобразовать введенную пользователем строку в число
	 | 
 
	
 
 Спасибо, все уяснил.
 
А насчёт цикла  for, я думаю, это немного не то, что нужно. В цикле у меня переменная  score может как увеличиваться, так и уменьшаться. Цикл же необходимо закончить, как только  score становится  >= 100. Собственно, с  for не очень соображаю, как это можно реализовать...  
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				21.04.2013, 16:07
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 ✔ 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 04.06.2012 
					
					
					
						Сообщений: 513
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		 GTG, а, ну в вашем случае лучше с while 
		
	
		
		
		
		
		
			
				__________________ 
				★ ²º¹³ ☆
			 
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
 
 
 
 
 
	 | 
 
 
 |