Вход

Просмотр полной версии : внутри функции конструкция If срабатывает и при выполнении и при невыполнении.


wertmax
02.02.2014, 03:28
Доброй ночи, господа.
поставился целью сделать змейку на JS. и столкнулся с проблемой: пытался прописать проигрыш и остановку всей деятельности скрипта в случае столкновения змейки с самой собой.

0-й член массива - "голова" змейки. если он совпадает с любым другим - скрипт отсылает функции timer строчку.

for (var i=snake.length-1; i>0;i--) {
snake[i]=assistSnake[i-1];
if (snake[0]==snake[i]) timer('close');
}


функция проста до безобразия, если что-то приходит к ней - она должна вывести сообщение и больше не рекурсировать. но она одновременно выводит сообщение и рекурсирует.

function timer(check) {
if (check) alert('Вы проиграли:С');
else window.timer1 = window.setInterval("motion()", 400);
}


Кому нужен полный код - http://fizmat.besaba.com/snake/

заранее спасибо:)

ksa
02.02.2014, 10:39
функция проста до безобразия, если что-то приходит к ней - она должна вывести сообщение и больше не рекурсировать. но она одновременно выводит сообщение и рекурсирует.

function timer(check) {
if (check) alert('Вы проиграли:С');
else window.timer1 = window.setInterval("motion()", 400);
}

Бивас, тест!

test(1,true);
test(2,false);
function test(Item,Ok) {
if (Ok) alert(Item+' - Ok');
else alert(Item+' - No');
}

Все работает как надо! :D

P.S.
Но бытует мнение (т.е. у тебя много соратников), что в JS вообще мало чего рабочего... ;)

domius
02.02.2014, 14:42
Слушай а как зделать повороты в змейке ?

ksa
02.02.2014, 14:50
а как зделать повороты в змейке ?
Обрабатывать события... Менять координаты, взависимости от того, что нажали...