Пишу змейку на Javascript
. Нужно чтобы после прохождения через ячейку где находится еда длина змеи увеличивалась. Каким образом это можно реализовать? Вот код:
const KEY_LEFT = 37;
const KEY_UP = 38;
const KEY_RIGHT = 39;
const KEY_DOWN = 40
var vendors = ["webkit", "moz", "o", "ms"];
for (var x = 0; x < vendors.length && !window.requestAnimationFrame; x++) {
window.requestAnimationFrame = window[vendors[x] + "RequestAnimationFrame"];
window.cancelAnimationFrame = window[vendors[x] + "CancelAnimationFrame"] ||
window[vendors[x] + "CancelRequestAnimationFrame"];
}
var table = document.getElementById('table');
var rows = '';
for (var i = 0; i <= 15; i++) {
rows += '<tr class="row" + i';
for (var j = 0; j <= 25; j++) {
rows += '<td></td>';
}
rows += '</tr>';
}
table.innerHTML = rows;
var i = 0;
var j = 0;
function move(i, j) {
var old = document.querySelector("td.red");
//console.log(i, j);
if (old)
old.classList.remove("red");
table.rows[i].cells[j].classList.add("red");
}
addEventListener("keydown", function(event) {
if (event.keyCode == KEY_UP) { // up
i--;
if (i < 0)
i = table.rows.length - 1;
} else if (event.keyCode == KEY_DOWN) { // down
i++;
if (i >= table.rows.length)
i = 0;
} else if (event.keyCode == KEY_RIGHT) { // right
j++;
if (j >= table.rows[0].cells.length)
j = 0;
} else if (event.keyCode == KEY_LEFT) { // left
j--;
if (j < 0)
j = table.rows[0].cells.length - 1;
}
move(i, j);
});
move(i, j);
function randomFood(i, j) {
var food = document.querySelector("td.green");
if (food)
food.classList.remove("green");
table.rows[i].cells[j].classList.add("green");
}
randomFood(5, 8);
#table {
margin: 0 auto;
}
td {
width: 20px;
height: 20px;
border: 1px solid black;
}
td.red {
background: red;
}
td.green {
background: green;
}
<table id="table">
<tr class="row">
<td></td>
</tr>
</table>
Если вопрос по логике то вот несколько советов.
если в процессе реализации возникнут вопросы по коду пиши.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Какие существуют виды рекламных бордов и как выбрать подходящий?
В блоке два одинаковых элемента, нужно обработать события клика так чтобы dropdown открывался только у элемента на который кликнули
Почему не выводится имя? Ведь стрелочная функция сохраняет контекст вызова, по идее все должно работать, но это не такЕсли заменить this
Мне требуется написать функцию на jsУ этой функции должны быть опциональные аргументы, делаю так