нужен совет!
я только начал изучать ява скрипт, поэтому обращаюсь к вам как опытным специалистам. вопрос:
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, время: 07:27. |