Затруднения с setInterval в игре "Змейка" (JavaScript)

var real_row = 1;
var real_col = 1;
var step = 1 ;
var keys = {
RIGHT : 39,
LEFT : 37,
DOWN : 40,
UP : 38,
}
COLOR_RED = 'red'
COLOR_WHITE = 'white'
function createMatrix (){
var n = 20*20;
var matrix = document.getElementById('matrix');
for(var i = 0; i < n; i++){
var div = document.createElement('div')
div.className = 'cell'
matrix.appendChild(div)
}
}
function setCell (row , col, val){
var matrix = document.getElementById('matrix')
var cell = matrix.children[20 * (row - 1) + col - 1]
return cell.style.backgroundColor = (val == true ? COLOR_RED : COLOR_WHITE)
}
function getCheck(){
if(real_col > 20) real_col = 20;
if(real_col < 1) real_col = 1;
if(real_row > 20) real_row = 20;
if(real_row < 1) real_row = 1;
}
function getMovie(e){
setCell(real_row , real_col , false)
if(e.keyCode == keys.RIGHT) real_col++
else if(e.keyCode == keys.LEFT) real_col--
else if(e.keyCode == keys.UP) real_row--
else if(e.keyCode == keys.DOWN) real_row++
getCheck()
setCell(real_row , real_col , true)
}
window.onload = function(){
createMatrix()
setCell(real_row , real_col , true)
document.onkeydown = function(e){
var timer = setInterval(function(){getMovie(e)} , 150)
}
}
Собственной проблема следующая, при нажатии на клавишу "стрелочка вправо" все идет так как надо, но после нажатия на любую другую клавишу из "стрелочек" происходит вакханалия, идет отдновременное увеличение столбца и строки.
Прошу , пожалуйста , объяснить ошибки и по возможности решение (надеюсь объяснил все понятно, заранее спаибо!).
22 сентября 2016 в 19:10
Ближайшие курсы

Как начать свой путь в разработке?
Онлайн-курс
1
марта
Стартуй в веб-разработке
Онлайн-курс
1
марта

SMM: маркетинг в соцсетях
Лидогенерация и работа с аудиторией
1
марта
Новые статьи

Как защитить Windows: системный подход
74400

«После Scratch поняла, что не хочу бросать программирование»
125210

Что такое MVP и зачем его делать
85200