Create snake game in JavaScript using GameController and use list instead of sta
ID: 3716246 • Letter: C
Question
Create snake game in JavaScript using GameController and use list instead of stack ADT write a basic description of your game. This should include:a list of characters or other sprites that will be in the game.
a description of the overall goal for the player (score maximum points, finish fastest, avoid enemies, etc.).
a description of gameplay controls (arrow keys, WASD, mouse click, drag and drop, etc.).
a description of any significant non-player character behavior.
an explanation of how your chosen List fits into the game play.
Create A Snake in a room . The snake will improve by eating food , using coordinates (x,y). Will be using the arrow keys ( left right up down ). The point of the game is when a snake eats food will get more squares , but if he hits him self he will lose some squares of its body. will be using list , specifecly Function pop() to remove the loses part when he hits him self and returns to the top element by eating more food. on collision the snake will return the loses part by using pop() with help of push(element) adding specified element to the top of the snake, however if he hits the wall it will End the Game.
Game implementation you can implement your game in this repository. If you preview the game.html file, you will see a "do nothing" game that is created by code in the game.js file. Expand the game.js file to implement your game.
Note fix the snake on game.js file not HTML, because HTML it's already there I jus need JS fixed
https://csci190.github.io/ArrayList/ArrayList.html
Create snake game in JavaScript using GameController and use list instead of stack ADT write a basic description of your game. This should include:
a list of characters or other sprites that will be in the game.
a description of the overall goal for the player (score maximum points, finish fastest, avoid enemies, etc.).
a description of gameplay controls (arrow keys, WASD, mouse click, drag and drop, etc.).
a description of any significant non-player character behavior.
an explanation of how your chosen List fits into the game play.
Create A Snake in a room . The snake will improve by eating food , using coordinates (x,y). Will be using the arrow keys ( left right up down ). The point of the game is when a snake eats food will get more squares , but if he hits him self he will lose some squares of its body. will be using list , specifecly Function pop() to remove the loses part when he hits him self and returns to the top element by eating more food. on collision the snake will return the loses part by using pop() with help of push(element) adding specified element to the top of the snake, however if he hits the wall it will End the Game.
Game implementation you can implement your game in this repository. If you preview the game.html file, you will see a "do nothing" game that is created by code in the game.js file. Expand the game.js file to implement your game.
Note fix the snake on game.js file not HTML, because HTML it's already there I jus need JS fixed
https://csci190.github.io/ArrayList/ArrayList.html
write a basic description of your game. This should include:
a list of characters or other sprites that will be in the game.
a description of the overall goal for the player (score maximum points, finish fastest, avoid enemies, etc.).
a description of gameplay controls (arrow keys, WASD, mouse click, drag and drop, etc.).
a description of any significant non-player character behavior.
an explanation of how your chosen List fits into the game play.
Create A Snake in a room . The snake will improve by eating food , using coordinates (x,y). Will be using the arrow keys ( left right up down ). The point of the game is when a snake eats food will get more squares , but if he hits him self he will lose some squares of its body. will be using list , specifecly Function pop() to remove the loses part when he hits him self and returns to the top element by eating more food. on collision the snake will return the loses part by using pop() with help of push(element) adding specified element to the top of the snake, however if he hits the wall it will End the Game. write a basic description of your game. This should include:
a list of characters or other sprites that will be in the game.
a description of the overall goal for the player (score maximum points, finish fastest, avoid enemies, etc.).
a description of gameplay controls (arrow keys, WASD, mouse click, drag and drop, etc.).
a description of any significant non-player character behavior.
an explanation of how your chosen List fits into the game play.
Create A Snake in a room . The snake will improve by eating food , using coordinates (x,y). Will be using the arrow keys ( left right up down ). The point of the game is when a snake eats food will get more squares , but if he hits him self he will lose some squares of its body. will be using list , specifecly Function pop() to remove the loses part when he hits him self and returns to the top element by eating more food. on collision the snake will return the loses part by using pop() with help of push(element) adding specified element to the top of the snake, however if he hits the wall it will End the Game.
Game implementation you can implement your game in this repository. If you preview the game.html file, you will see a "do nothing" game that is created by code in the game.js file. Expand the game.js file to implement your game.
Note fix the snake on game.js file not HTML, because HTML it's already there I jus need JS fixed
https://csci190.github.io/ArrayList/ArrayList.html
Explanation / Answer
Below I had created a snake game using html and javascript.
Hope this helps...
Thankyou..... :)
<!DOCTYPE html>
<html>
<head>
<meta charset='utf-8'/>
<style>
body {
text-align:center;
font-family: helvetica;
}
canvas {
border: 2px solid rgb(151, 149, 149);
}
</style>
</head>
<body>
<h3>Simple Snake Game</h3>
<canvas id="stage" height="400" width="520"></canvas>
<script>
/**
* Namespace
*/
var Game = Game || {};
var Keyboard = Keyboard || {};
var Component = Component || {};
/**
* Keyboard Map
*/
Keyboard.Keymap = {
37: 'left',
38: 'up',
39: 'right',
40: 'down'
};
/**
* Keyboard Events
*/
Keyboard.ControllerEvents = function() {
// Setts
var self = this;
this.pressKey = null;
this.keymap = Keyboard.Keymap;
// Keydown Event
document.onkeydown = function(event) {
self.pressKey = event.which;
};
// Get Key
this.getKey = function() {
return this.keymap[this.pressKey];
};
};
/**
* Game Component Stage
*/
Component.Stage = function(canvas, conf) {
// Sets
this.keyEvent = new Keyboard.ControllerEvents();
this.width = canvas.width;
this.height = canvas.height;
this.length = [];
this.food = {};
this.score = 0;
this.direction = 'right';
this.conf = {
cw : 10,
size : 5,
fps : 1000
};
// Merge Conf
if (typeof conf == 'object') {
for (var key in conf) {
if (conf.hasOwnProperty(key)) {
this.conf[key] = conf[key];
}
}
}
};
/**
* Game Component Snake
*/
Component.Snake = function(canvas, conf) {
// Game Stage
this.stage = new Component.Stage(canvas, conf);
// Init Snake
this.initSnake = function() {
// Itaration in Snake Conf Size
for (var i = 0; i < this.stage.conf.size; i++) {
// Add Snake Cells
this.stage.length.push({x: i, y:0});
}
};
// Call init Snake
this.initSnake();
// Init Food
this.initFood = function() {
// Add food on stage
this.stage.food = {
x: Math.round(Math.random() * (this.stage.width - this.stage.conf.cw) / this.stage.conf.cw),
y: Math.round(Math.random() * (this.stage.height - this.stage.conf.cw) / this.stage.conf.cw),
};
};
// Init Food
this.initFood();
// Restart Stage
this.restart = function() {
this.stage.length = [];
this.stage.food = {};
this.stage.score = 0;
this.stage.direction = 'right';
this.stage.keyEvent.pressKey = null;
this.initSnake();
this.initFood();
};
};
/**
* Game Draw
*/
Game.Draw = function(context, snake) {
// Draw Stage
this.drawStage = function() {
// Check Keypress And Set Stage direction
var keyPress = snake.stage.keyEvent.getKey();
if (typeof(keyPress) != 'undefined') {
snake.stage.direction = keyPress;
}
// Draw White Stage
context.fillStyle = "white";
context.fillRect(0, 0, snake.stage.width, snake.stage.height);
// Snake Position
var nx = snake.stage.length[0].x;
var ny = snake.stage.length[0].y;
// Add position by stage direction
switch (snake.stage.direction) {
case 'right':
nx++;
break;
case 'left':
nx--;
break;
case 'up':
ny--;
break;
case 'down':
ny++;
break;
}
// Check Collision
if (this.collision(nx, ny) == true) {
snake.restart();
return;
}
// Logic of Snake food
if (nx == snake.stage.food.x && ny == snake.stage.food.y) {
var tail = {x: nx, y: ny};
snake.stage.score++;
snake.initFood();
} else {
var tail = snake.stage.length.pop();
tail.x = nx;
tail.y = ny;
}
snake.stage.length.unshift(tail);
// Draw Snake
for (var i = 0; i < snake.stage.length.length; i++) {
var cell = snake.stage.length[i];
this.drawCell(cell.x, cell.y);
}
// Draw Food
this.drawCell(snake.stage.food.x, snake.stage.food.y);
// Draw Score
context.fillText('Score: ' + snake.stage.score, 5, (snake.stage.height - 5));
};
// Draw Cell
this.drawCell = function(x, y) {
context.fillStyle = 'rgb(170, 170, 170)';
context.beginPath();
context.arc((x * snake.stage.conf.cw + 6), (y * snake.stage.conf.cw + 6), 4, 0, 2*Math.PI, false);
context.fill();
};
// Check Collision with walls
this.collision = function(nx, ny) {
if (nx == -1 || nx == (snake.stage.width / snake.stage.conf.cw) || ny == -1 || ny == (snake.stage.height / snake.stage.conf.cw)) {
return true;
}
return false;
}
};
/**
* Game Snake
*/
Game.Snake = function(elementId, conf) {
// Sets
var canvas = document.getElementById(elementId);
var context = canvas.getContext("2d");
var snake = new Component.Snake(canvas, conf);
var gameDraw = new Game.Draw(context, snake);
// Game Interval
setInterval(function() {gameDraw.drawStage();}, snake.stage.conf.fps);
};
/**
* Window Load
*/
window.onload = function() {
var snake = new Game.Snake('stage', {fps: 100, size: 4});
};
</script>
</body>
</html>
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.