Compare commits
1 Commits
master
...
Dejwut-shi
Author | SHA1 | Date | |
---|---|---|---|
|
3252feee0a |
68
snake.html
68
snake.html
@ -65,10 +65,13 @@
|
||||
upPressed();
|
||||
} else if (e.key === "ArrowDown") {
|
||||
downPressed();
|
||||
} else if (e.key === "Escape") {
|
||||
escPressed();
|
||||
}
|
||||
});
|
||||
|
||||
window.setInterval(() => {
|
||||
|
||||
gameUpdate();
|
||||
|
||||
for (const tile of document.querySelectorAll(".body, .head, .fruit")) {
|
||||
@ -84,24 +87,83 @@
|
||||
if (fruit !== null) {
|
||||
document.getElementsByClassName(fruit.x + "-" + fruit.y)[0].classList.add("fruit");
|
||||
}
|
||||
}, 1000);
|
||||
}, 300);
|
||||
|
||||
// this is where your implementation starts
|
||||
|
||||
function gameUpdate() {
|
||||
let dir = 1; //orientation variable, 0 = up, 1 = right, 2 = down, 3 = left
|
||||
let paused = false;
|
||||
let justAte = false;
|
||||
function getRand(x) {
|
||||
return Math.floor(Math.random() * x);
|
||||
}
|
||||
function gameUpdate() {
|
||||
if(paused){
|
||||
return;
|
||||
}
|
||||
|
||||
if (fruit === null) {
|
||||
fruit = {x: getRand(10), y: getRand(10)};
|
||||
}
|
||||
//console.log(dir);
|
||||
|
||||
if (fruit.x === snake[0].x && fruit.y === snake[0].y) {
|
||||
justAte = true;
|
||||
fruit = null;
|
||||
snake.unshift({...snake[0]});
|
||||
}
|
||||
if (!justAte) {
|
||||
for (let i = snake.length - 1; i > 0; i--){
|
||||
snake[i].x = snake[i-1].x;
|
||||
snake[i].y = snake[i-1].y;
|
||||
}
|
||||
}
|
||||
switch (dir) {
|
||||
case 1:
|
||||
snake[0].x += 1
|
||||
break;
|
||||
case 2:
|
||||
snake[0].y += 1
|
||||
break;
|
||||
case 3:
|
||||
snake[0].x -= 1
|
||||
break;
|
||||
case 0:
|
||||
snake[0].y -= 1
|
||||
break;
|
||||
|
||||
}
|
||||
for (let index = snake.length - 1; index > 0; index--) {
|
||||
const element = snake[index];
|
||||
if (snake[0].x === element.x && snake[0].y === element.y){
|
||||
alert('You suck at snake');
|
||||
window.location.replace('https://www.youtube.com/watch?v=dQw4w9WgXcQ&list=PLahKLy8pQdCM0SiXNn3EfGIXX19QGzUG3');
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
snake[0].x = (snake[0].x + 10) % 10;
|
||||
snake[0].y = (snake[0].y + 10) % 10;
|
||||
justAte = false;
|
||||
}
|
||||
function leftPressed() {
|
||||
dir = 3;
|
||||
}
|
||||
|
||||
function rightPressed() {
|
||||
dir = 1;
|
||||
}
|
||||
|
||||
function upPressed() {
|
||||
dir = 0;
|
||||
}
|
||||
|
||||
function downPressed() {
|
||||
dir = 2;
|
||||
}
|
||||
function escPressed() {
|
||||
paused = !paused
|
||||
}
|
||||
|
||||
});
|
||||
</script>
|
||||
</head>
|
||||
|
Loading…
Reference in New Issue
Block a user