Javascript-форум (https://javascript.ru/forum/)
-   Ваши сайты и скрипты (https://javascript.ru/forum/project/)
-   -   внутри функции конструкция If срабатывает и при выполнении и при невыполнении. (https://javascript.ru/forum/project/44786-vnutri-funkcii-konstrukciya-if-srabatyvaet-i-pri-vypolnenii-i-pri-nevypolnenii.html)

wertmax 02.02.2014 03:28

внутри функции конструкция If срабатывает и при выполнении и при невыполнении.
 
Доброй ночи, господа.
поставился целью сделать змейку на 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

Цитата:

Сообщение от wertmax (Сообщение 295280)
функция проста до безобразия, если что-то приходит к ней - она должна вывести сообщение и больше не рекурсировать. но она одновременно выводит сообщение и рекурсирует.
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

Цитата:

Сообщение от domius
а как зделать повороты в змейке ?

Обрабатывать события... Менять координаты, взависимости от того, что нажали...


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