-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathonload.js
More file actions
121 lines (112 loc) · 3.79 KB
/
Copy pathonload.js
File metadata and controls
121 lines (112 loc) · 3.79 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
//
// Точка входа.
//
$(document).ready(function()
{
var matrix = new Matrix('matrix', 20, 20);
var snake = new Snake(5, 8, 'right');
matrix.setCell(snake.body[0].x, snake.body[0].y, 'snake', true);
var food = new Food(7, 14);
var cell_food;
function setFood(food)
{
cell_food = matrix.getCellNode(food.body.x, food.body.y);
cell_food.append("<img src='apple.png' id='apple'>");
$('#apple').animate({opacity: 1}, 1000);
matrix.setCell(food.body.x, food.body.y, 'food', true);
}
setFood(food);
var name = '';
function gameOver(coords)
{
if (coords.x > matrix.rows || coords.x <= 0 || coords.y > matrix.cols || coords.y <= 0) {
return {status: true, msg: 'Выход за границу игрового поля.'};
} else if (matrix.getCell(coords.x, coords.y, 'snake')) {
return {status: true, msg: 'Вы укусили себя.'};
}
return {status: false, msg: ''};
}
var gameplay = function gameplay()
{
var coords = snake.getNextCoords();
var gameover = gameOver(coords);
if (gameover.status == true) {
$.get('/game.php',
{name: name, score: snake.body.length, level: $('input[name="level"]:checked').val()},
function(data) {
alert(gameover.msg + '\n' + data);
clearInterval(interval);
location.reload();
},
'text'
);
} else if (matrix.getCell(coords.x, coords.y, 'food')) {
snake.grow();
cell_food.empty();
matrix.setCell(coords.x, coords.y, 'food', false);
matrix.setCell(snake.body[0].x, snake.body[0].y, 'snake', true);
do {
var x = getRandomNumber(2, 19);
var y = getRandomNumber(2, 19);
} while (matrix.getCell(x, y, 'snake'));
food.body.x = x;
food.body.y = y;
setFood(food);
}
var tail = snake.body.length - 1;
matrix.setCell(snake.body[tail].x, snake.body[tail].y, 'snake', false);
snake.move();
matrix.setCell(snake.body[0].x, snake.body[0].y, 'snake', true);
};
var interval;
$('#btn_start_game').click(function() {
name = prompt('Введите Ваше имя', '');
if (name == null || name == '') location.reload();
var speed = 0;
var level = $('input[name="level"]:checked').val();
switch(level)
{
case 'easy':
speed = 300;
break;
case 'medium':
speed = 200;
break;
case 'hard':
speed = 100;
}
interval = setInterval(gameplay, speed);
//$('#start_game').attr('disabled', true);
});
$('#btn_records').click(function() {
$('body').append('<div id="table_records"></div>');
$.getJSON('/game.php',
{records: 'records'},
function (data) {
var html = '';
for (var i = 0; i < data.length; i++) {
html += data[i].name + ' | ' + data[i].score + ' | ' + data[i].level + '<br>'
}
$('#table_records').append(html);
}
);
});
$(document).keydown(function(event)
{
switch (event.keyCode)
{
case 37: //left
snake.course = 'left';
break;
case 38: //up
snake.course = 'up';
break;
case 39: //right
snake.course = 'right';
break;
case 40: //down
snake.course = 'down';
break;
}
});
});