forked from fuwens/js2048
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcommon.js
131 lines (121 loc) · 2.93 KB
/
common.js
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
122
123
124
125
function getPosTop(i,j){
return 20+i*120;
};
function getPosLeft(i,j){
return 20+j*120;
};
function getTheNumberBackground(number){
switch (number){
case 2: return "#c4d8e3";break;
case 4: return "#71bbbc";break;
case 8: return "#a9c57a";break;
case 16: return "#e5cd88";break;
case 32: return "#d9955d";break;
case 64: return "#de7863";break;
case 128: return "#ca586f";break;
case 256: return "#d5afd1";break;
case 512: return "#7d68a1";break;
case 1024: return "#5f81c3";break;
case 2048: return "#5b5b5c";break;
case 4096: return "#be933c";break;
case 8192: return "#030200";break;
}
return 'black';
}
function getTheNumberColor(number){
if(number <= 4){
return '#776e65';
};
return 'white';
}
//是否还有可以随机的空间
function noSpace(data){
for(var i=0;i<4;i++){
for(var j=0;j<4;j++){
if(data[i][j] == 0){
return false;
}
}
}
return true;
}
//判断是否可以左移动
function canMoveLeft(data){
for(var i = 0;i<4;i++){
for(var j=1;j<4;j++){
if(data[i][j] !=0){
if(data[i][j-1] == 0 || data[i][j-1] == data[i][j]){
return true;
}
}
}
};
return false;
}
//判断是否可以右移动
function canMoveRight(data){
for(var i=0;i<4;i++){
for(var j=2;j>=0;j--){
if(data[i][j] != 0){
if(data[i][j+1] == 0 || data[i][j+1] == data[i][j]){
return true;
}
}
}
};
return false;
}
//判断是否可以向上移动
function canMoveUp(data){
for(var j=0;j<4;j++){
for(var i=1;i<4;i++){
if(data[i][j] !=0){
if(data[i-1][j] == 0 || data[i-1][j] == data[i][j]){
return true;
}
}
}
}
return false;
}
//判断是否可以向下移动
function canMoveDown(data){
for(var j=0;j<4;j++){
for(var i=0;i<3;i++){
if(data[i][j]!=0){
if(data[i+1][j]==0 || data[i+1][j] == data[i][j]){
return true;
}
}
}
}
return false;
}
//水平方向判断是否有障碍物
function noObstructorHorizontal(row,n1,n2,data){
for(var i=n1 +1;i<n2;i++ ){
if(data[row][i]!=0){
return false;
}
}
return true;
}
//垂直方向判断是否有障碍物
function noObstructorVertical(col,n1,n2,data){
for(var i=n2+1;i<n1;i++){
if(data[i][col] != 0){
return false;
}
}
return true;
}
function noMove(data){
if(canMoveLeft(data) || canMoveRight(data) || canMoveUp(data) ||canMoveDown(data)){
return false;
}
return true;
}
//跟新分数
function updataScore(score){
$('#score').text(score);
}