Javascript-форум (https://javascript.ru/forum/)
-   Ваши сайты и скрипты (https://javascript.ru/forum/project/)
-   -   змейка на javascript (https://javascript.ru/forum/project/14322-zmejjka-na-javascript.html)

Vulkan 11.01.2011 14:07

Цитата:

Сообщение от Kolyaj (Сообщение 87366)
Удобнее дивы передвигать, чем прямоугольники рисовать-стирать.

Кому как

ksa 11.01.2011 14:07

Kolyaj, отож... :yes:

B~Vladi 11.01.2011 14:17

Почему бы код
//выход за пределы поля
if (snakeArray[lastI].x > 19) {
  alert("You LOSE" + " POINTS: " + POINTS);
  clearInterval(idInterval)
  return;
} else if (snakeArray[lastI].y > 19){
  alert("You LOSE" + " POINTS: " + POINTS);
  clearInterval(idInterval)
  return;
} else if (snakeArray[lastI].y < 0) {
  alert("You LOSE" + " POINTS: " + POINTS);
  clearInterval(idInterval)
  return;
} else if (snakeArray[lastI].x < 0) {
  alert("You LOSE"  + " POINTS: " + POINTS);
  clearInterval(idInterval)
  return;
}

не записать так:
if (snakeArray[lastI].x > 19 || snakeArray[lastI].y > 19 || snakeArray[lastI].y < 0 || snakeArray[lastI].x < 0) {
  alert("You LOSE POINTS: " + POINTS);
  clearInterval(idInterval)
  return;
}


В фф у меня тоже остаются квадратики.

И ещё. Код в блоках if else вроде одинаковый? (строки с 189 по 240). Тогда нет смысла вообще проверять направление.

Shaci 11.01.2011 14:26

Цитата:

Сообщение от B~Vladi (Сообщение 87369)
Почему бы код
//выход за пределы поля
if (snakeArray[lastI].x > 19) {
  alert("You LOSE" + " POINTS: " + POINTS);
  clearInterval(idInterval)
  return;
} else if (snakeArray[lastI].y > 19){
  alert("You LOSE" + " POINTS: " + POINTS);
  clearInterval(idInterval)
  return;
} else if (snakeArray[lastI].y < 0) {
  alert("You LOSE" + " POINTS: " + POINTS);
  clearInterval(idInterval)
  return;
} else if (snakeArray[lastI].x < 0) {
  alert("You LOSE"  + " POINTS: " + POINTS);
  clearInterval(idInterval)
  return;
}

не записать так:
if (snakeArray[lastI].x > 19 || snakeArray[lastI].y > 19 || snakeArray[lastI].y < 0 || snakeArray[lastI].x < 0) {
  alert("You LOSE POINTS: " + POINTS);
  clearInterval(idInterval)
  return;
}

да ,конечно
я просто не оптимизировал код

Цитата:

И ещё. Код в блоках if else вроде одинаковый? (строки с 189 по 240). Тогда нет смысла вообще проверять направление.
там 2 строчки разные в зависимости от направления
которые nextX и nextY вычисляют

B~Vladi 11.01.2011 18:44

Цитата:

Сообщение от Shaci
там 2 строчки разные в зависимости от направления

Как это я не заметил =)
Ну в общем есть ещё над чем поработать =)

Matre 11.01.2011 22:07

Shaci
слиш а как вы это написали
там через сервер?или mvc?

кстати в lynx неработает игра

Shaci 11.01.2011 22:09

Цитата:

Сообщение от B~Vladi (Сообщение 87448)
Как это я не заметил =)
Ну в общем есть ещё над чем поработать =)

над вёрсткой надо мне работать))

Matre 11.01.2011 22:13

игра неваша-рас вы неможете сказать,через сервер там или mvc
это мерско,отвратительно,унизи тельно,дерско,пошло,оскорб� �тнльно и подло!!
кто сказал,может вы у меня ее и стырили

Shaci 11.01.2011 22:20

Цитата:

Сообщение от Matre (Сообщение 87491)
Shaci
слиш а как вы это написали
там через сервер?или mvc?

кстати в lynx неработает игра

конечно же через сервер, координаты храню в базе данных,
каждую секунду идет запрос на БД, берутся координаты, меняются и записываются опять в БД
и mvc используется тоже

x-yuri 12.01.2011 03:08

Цитата:

Сообщение от Shaci
там 2 строчки разные в зависимости от направления

а зачем в эти if'ы остальной код пихать? Да и... "Правило представления: Храните знания в данных так, чтобы логика программы была тупой и надёжной." (ссылка)
var inc = {};
inc[RIGHT] = {'x': 1, 'y': 0};
inc[DOWN] = {'x': 0, 'y': 1};
inc[LEFT] = {'x': -1, 'y': 0};
inc[UP] = {'x': 0, 'y': -1};

nextX = snakeArray[firstI].x + inc[DIRECTION]['x'];
nextY = snakeArray[firstI].y + inc[DIRECTION]['y'];
if (nextX == eat.x && nextY == eat.y) {
	growth();
	eat.id = "";
	POINTS++;
	createEat();
} else
	move();


2) что ты хотел сказать, называя переменные и константы в верхнем регистре?

3) можно было бы написать более понятный код, и ошибок, скорее всего, не было б

Цитата:

Сообщение от Shaci
я просто не оптимизировал код

это не оптимизация, это избавление от ненужного копипаста...


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