нужен совет!
я только начал изучать ява скрипт, поэтому обращаюсь к вам как опытным специалистам. вопрос:
1. есть здание - написать скрипт игры "угадай число". я написал своими мозгами,но 2. по условию задания скрипт работает один раз, я же решил его модернизировать и заставить работать дважды. вот что получилось, но он не работает!!! Поэтому не стал лопатить литературы потому, как объяснения живых людей лучше усваиваю :). В Aptana если в значении CASE 3 вместо break поставить stop (не знаю откуда я взял этот оператор:blink: просто влез в голову) работает нормально, но стоит загрузить файл в Мозилу - полная каша! Подскажите все мои ошибки! И если ли варианты упростить код до минимума? <html> <body> <script language="JavaScript" type="text/javascript">//<![CDATA [ var secretNumber = prompt("Угадай число от 1 до 5 с двух попыток:", ""); secretNumber = parseInt(secretNumber); switch (secretNumber) { case 1: case 2: case 4: case 5: alert("Не угадал!"); alert("Попробуй еще!"); break; default: alert("Слишком большое значение!"); alert("Попробуй еще!"); break; case 3: alert("Молодец угадал!"); break; } var Number = prompt("Введи число", ""); Number = parseInt(secretNumber); switch (Number) { case 1: case 2: case 4: case 5: alert("Не угадал!"); alert("закончилось число попыток!"); break; case 3: alert("Молодец угадал!"); break; } alert("перезагрузи страничку и попробуй снова!"); //]]> </script> </body> </html> P.S. Прошу прощения за мою полную безграмотность, я только начал изучать язык, дошел до SWITCH теперь его и обсасываю. Если в моем вопросе используются другие методы, значит я еще рано далеко смотрю :), но просто интереско - КАК ЭТО РАБОТАЕТ!!! |
Цитата:
Цитата:
Число нужно делать случайным, но в некоем интервале. Потом запрашивать у пользователя его вариант... Сравнивать со своим, давать ответ. После этого повторять запрос пока число не отгадают или откажутся от отгадывания. Вот такое потом можно будет повторять сколь угодно раз... ;) |
а код можно посмотреть?
|
..и еще.. вот вбилось в голову именно два раза! вводит пользователь число, если угадал с первого раза, код должен остановиться и все! но не получается! а ответ должен задаваться именно мной, а не случайным числом
|
Цитата:
|
Цитата:
В противном случае всегда придётся править код программки, если захочется отгадывать какое-то другое число... |
а как это сделать?
|
и самое главное - в Aptana он работает, но в браузере нет!
|
только надо в CASE 3 BREAK надо поменять на STOP (почему?)
|
Цитата:
|
вот и я о том же :) этот оператор написал от балды, но в аптане он почему то работает, странно, но его же даже не существует помоему?
смысл в том, что при правильном ответе первый раз - программа останавливается, а если стоит BREAK, то код выполняется дальше и просит ввод снова. Вот как это все победить? |
<html>
<body>
<script language="JavaScript" type="text/javascript">
function ugaday_chislo(){
var num = ((Math.random() * 5)+1)>>0;
var i = 2;
var secretNumber = 0;
while(i>0){
if(prompt("Угадай число от 1 до 5 с двух попыток:(осталось "+ i +" попыток)")==num){
alert("Молодец угадал!");
return true;
}else{
alert("Не угадал!");
alert("Попробуй еще!");
}
i--;
}
return false;
}
for(var i = 0;i<2;i++){
if(!ugaday_chislo() && i==0)alert("пичаль, пробуй второй раз");
}
</script>
</body>
</html>
|
Помимо условных операторов есть еще операторы return, continue, дерзайте
|
Ну и мой вариант до кучи...
<!DOCTYPE html>
<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<style type='text/css'>
</style>
<script type="text/javascript">
function Go() {
var n=3
var max=2
var message="Угадай число от 1 до 5 с двух попыток. Попытка "
var step=1
while (true) {
var secretNumber = prompt(message+step, "");
if (secretNumber=='') {
break
}
secretNumber = parseInt(secretNumber);
if (secretNumber<1||secretNumber>5) {
alert("Твоё число за пределами диапазона...");
continue
}
if (secretNumber==n) {
alert("Молодец угадал!");
return
}
if (secretNumber<n) {
alert("Не угадал. Загаданое число больше твоего...\nПопробуй еще.");
}
if (secretNumber>n) {
alert("Не угадал. Загаданое число меньше твоего...\nПопробуй еще.");
}
if (max!=0&&max<++step) {
alert("Количество попыток исчерпано.");
break
}
}
alert("Можно перезагрузить страничку и попробовать снова!");
}
</script>
</head>
<body onload='Go()'>
</body>
</html>
DooMer, для этой задачки ты выбрал не ту конструкцию... |
Цитата:
|
спасибо ребята! есть чему учиться и над чем поработать! думаю вопросами еще не раз закидаю :)
|
а вот от меня :)
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
</head>
<body>
<script language = "JavaScript">
document.write("<p><p>");
random();
document.write("<center><p>Угадай число за ПЯТЬ попыток<p></center>");
function clue() {
clue1 = num-clue3;
clue2 = num+clue4;
alert("Число находится между " + clue1 + " и " + clue2);
}
function random() {
g=0;
today = new Date();
clue3=today.getTime();
clue3=Math.round(Math.abs (Math.sin (clue3)*5));
clue4=today.getTime();
clue4=Math.round(Math.abs (Math.sin (clue4)*19));
num = today.getTime();
num = Math.round(Math.abs (Math.sin (num)*100));
return num;
return clue3;
return clue4;
}
function guess() {
var no=document.game.number.value;
g=g+1;
if (g == 5 ) {
alert("Это была последняя попытка!");
alert("Теперь отгадайте другое число!");
document.game.number.value = "";
random();
}
if (no > num ) {
alert("Загаданное число меньше!");
alert("Это " + g + " попытка!");
}
if (no < num ) {
alert("Загаданное число больше!");
alert("Это " + g + " попытка!");
}
if (no == num) {
alert("Победа!");
alert("Вы угадали за " + g + " попыток.");
document.game.number.value = "";
random();
}
}
//document.write("Это число "+num);
</script>
<center>
<form name = game>
<input type=text name=number size=8>
<input type=button value = " !!!Подсказка!!! " onClick="clue()">
<P>
<input type=button value=" Угадать " onClick="guess()">
<P>
<input type=button value= " Новая игра " onClick="random()">
</form>
</center>
</body>
</html>
Я все правильно сделал? |
| Часовой пояс GMT +3, время: 04:48. |