aboutsummaryrefslogtreecommitdiff
path: root/src/snake
diff options
context:
space:
mode:
Diffstat (limited to 'src/snake')
-rw-r--r--src/snake/index.html83
-rw-r--r--src/snake/server.js11
2 files changed, 94 insertions, 0 deletions
diff --git a/src/snake/index.html b/src/snake/index.html
new file mode 100644
index 0000000..eb11f86
--- /dev/null
+++ b/src/snake/index.html
@@ -0,0 +1,83 @@
+<center>
+ <canvas width="400" height="400" id="canvas"></canvas>
+</center>
+<script>
+ window.onload = function(){
+ canvas = document.getElementById("canvas");
+ ctx = canvas.getContext("2d");
+// canvas.height = 300;
+// canvas.width = 400;
+ document.addEventListener("keydown",keyPush);
+ setInterval(game, 1000/10);
+ }
+ var tileCountWidth = 40;
+ var tileCountHeight = 40;
+ var tileWidth = canvas.width/tileCountWidth;
+ var tileHeight = canvas.height/tileCountHeight;
+ var snake = [];
+ var x = randomInt(tileWidth);
+ var y = randomInt(tileHeight);
+ var vx = 1;
+ var vy = 0;
+ var apple = {};
+ console.log(apple);
+ setRandomCoords(apple);
+ console.log(apple);
+ var length = 5;
+ function game(){
+ color("black");
+ ctx.fillRect(0,0,canvas.width, canvas.height);
+ color("white");
+ for(var i = 0; i < snake.length; i++){
+ ctx.fillRect(snake[i].x*tileWidth, snake[i].y*tileHeight, tileWidth, tileHeight);
+ }
+ color("red");
+ ctx.fillRect(apple.x*tileWidth, apple.y*tileHeight, tileWidth, tileHeight);
+
+ x+=vx;
+ y+=vy;
+ snake.push({"x": x, "y": y});
+ if(x==apple.x && y==apple.y){
+ length++;
+ setRandomCoords(apple);
+ }
+
+ while(snake.length > length){
+ snake.shift();
+ }
+
+ }
+ function keyPush(e){
+ switch(e.keyCode){
+ case 37:
+ vx = -1;
+ vy = 0;
+ break;
+ case 38:
+ vx = 0;
+ vy = -1;
+ break;
+ case 39:
+ vx = 1;
+ vy = 0;
+ break;
+ case 40:
+ vx = 0;
+ vy = 1;
+ break;
+ }
+ }
+ function setRandomCoords(item){
+ item.x = randomInt(tileWidth);
+ item.y = randomInt(tileHeight);
+ }
+ function randomInt(max){
+ return Math.floor(Math.random()*max);
+ }
+ function font(size){
+ ctx.font=size+"px Courier";
+ }
+ function color(c){
+ ctx.fillStyle=c;
+ }
+</script>
diff --git a/src/snake/server.js b/src/snake/server.js
new file mode 100644
index 0000000..c73990b
--- /dev/null
+++ b/src/snake/server.js
@@ -0,0 +1,11 @@
+const path = require('path');
+const fs = require('fs');
+
+function setUpRoutes(server, models, jwtFunctions, database) {
+ server.get('/snake', (req, res) => res.sendFile(__dirname + "/index.html"))
+ server.get('/snake/styles.css', (req, res) => res.sendFile(__dirname + "/static/styles.css"))
+}
+
+module.exports = {
+ setUpRoutes
+};