Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Головоломка на JS; непорядок с переменными (https://javascript.ru/forum/misc/24273-golovolomka-na-js%3B-neporyadok-s-peremennymi.html)

Он самый 23.12.2011 22:02

Головоломка на JS; непорядок с переменными
 
Здравствуйте. Чтобы вы поняли суть проблемммы, сначала опишу как работает программа. Есть число "х", если при делении его на 4 остаток 0, выводится жёлтый квадрат, 1 - зелёный, 2 - красный, 3 - синий. Есть 4 кнопки, каждая из которых прибавляет к нему 1, 2, 3 или 4. Логическим путём нужно узнать, какая сколько прибавляет, вписать в поля и проверить результат. Ещё есть возможность ввода пользовательских значений для кнопок, вот тут-то и начинается проблемма. При проверке все переменные считаются изменёнными, но при нажатии на кнопки происходит неизвестно что: сначала прибаляется 1 затем 2, а потом кнопка перестаёт работать. Проверил всё, никак немогу найти ошибку. Вот код:
<html>
<head>
<title>головоломка</title>

<meta http-equiv="content-type" content="text/html; charset="UTF 8">

<script>

x=0;
r=0;
l=1;
a1=3;
a2=1;
a3=4;
a4=2;

function ex1()

{if (x % 4==0)
{eval("document.i1.src='http://sait-raznoe.do.am/2/1.png'");}

 if (x % 4==1)
{eval("document.i1.src='http://sait-raznoe.do.am/2/2.png'");}

 if (x % 4==2)
{eval("document.i1.src='http://sait-raznoe.do.am/2/3.png'");}

 if (x % 4==3)
{eval("document.i1.src='http://sait-raznoe.do.am/2/4.png'");}
setTimeout("ex1();",200);}

function ex2()
{k1=document.forma.k1.value;
 k2=document.forma.k2.value;
 k3=document.forma.k3.value;
 k4=document.forma.k4.value;

 if (k1==a1)
{if (k2==a2)
{if (k3==a3)
{if (k4==a4)
{if (l==2)
{window.alert('Головоломка решена верно со '+l+' попытки. Вы справились за '+r+' секунд.');location.reload(true);}
else
{window.alert('Головоломка решена верно с '+l+' попытки. Вы справились за '+r+' секунд.');location.reload(true);}}}}}

  if (k1==a1)
{z=1}
else 
{window.alert('Кнопка 1 определена неправильно.');l=l+1;}

  if (k2==a2)
{z=1}
else 
{window.alert('Кнопка 2 определена неправильно.');l=l+1;}

  if (k3==a3)
{z=1}
else 
{window.alert('Кнопка 3 определена неправильно.');l=l+1;}

  if (k4==a4)
{z=1}
else 
{window.alert('Кнопка 4 определена неправильно.');l=l+1;}}


function ex3()
{r=r+1;
setTimeout("ex3();",1000);}

function ex4()

{a1=document.fn.kn1.value;
 a2=document.fn.kn2.value;
 a3=document.fn.kn3.value;
 a4=document.fn.kn4.value;
 window.alert('Сообщение.');}

</script>


</head>
<body background="http://sait-raznoe.do.am/fon.png">


<HR>
<HR>

<p align="center">

<input type="button" value="начать" onclick=ex1();ex3()>

</p>

<HR>

<p align="center">

<img name="i1" src="http://sait-raznoe.do.am/2/1.png">

<BR>
<BR>

<input type="button" value="кнопка 1" onclick=x=x+a1>

<input type="button" value="кнопка 2" onclick=x=x+a2>

<input type="button" value="кнопка 3" onclick=x=x+a3>

<input type="button" value="кнопка 4" onclick=x=x+a4>

</p>

<HR>
<HR>

<form name="forma">

<p align="center">

<input type="text" name="k1" value="кнопка 1">
<input type="text" name="k2" value="кнопка 2">
<input type="text" name="k3" value="кнопка 3">
<input type="text" name="k4" value="кнопка 4">

<BR>

</p>

<HR>

<p align="center">

<input type="button" value="проверить" onclick=ex2()>

</p>

</form>

<HR>
<HR>


<form name="fn">

<p align="center">

<input type="text" name="kn1" value="кнопка 1">
<input type="text" name="kn2" value="кнопка 2">
<input type="text" name="kn3" value="кнопка 3">
<input type="text" name="kn4" value="кнопка 4">

<BR>

<input type="button" value="изменить" onclick=ex4()>

</p>

</form>

</body>
</html>


Прошу помочь. :help:

melky 23.12.2011 23:31


Он самый 26.12.2011 11:27

Цитата:

откройте консоль и посмотрите, где возникает ошибка
Я нуб... Где её искать и как пользоваться?...

nerv_ 26.12.2011 11:44

Он самый, Редактирование и отладка скриптов


Часовой пояс GMT +3, время: 09:18.