1#define _crt_secure_no_warnings//
去掉編譯器內部擴增問題
2 #include3 #include4 #include5 #include//
6 #include7 #include8 #include
9 #include10 #include11 #include12
using
namespace
std;
1314
namespace15;
19bool isover = true;20
bool gameover = false;21
enum
direction22;
25};
2627
void setimageindex();//
設定編號
28void
loadresource();
29void
drawmap();
30void
randintnum();
31void
keydownanddraw();
32bool turnleft(int s[4][4
]);33
void
changeonkeydown(direction direction);
3435
3637
intmain()
3849
void
setimageindex()
5056}57
void loadresource()//
載入5865}
6667
//畫地圖
68void
drawmap()
6978 getline(iscore, out
);79
char score[10
];80
char highlyscore[100
];81
int sum=0
;82 setbkcolor(rgb(244, 215, 215
));83
cleardevice();
84 settextcolor(white);//
設定文字顏色
85 settextstyle(35, 0, "
楷體");//
設定文字格式
86 outtextxy(50, 10, "
2048遊戲");
87 settextcolor(yellow);//
設定文字顏色
88 settextstyle(25, 0, "
楷體");//
設定文字格式
89for (int i = 0; i < 4; i++)//
計算分數
9097}98
}99 sprintf(score, "
分數:%d
", sum);
100 outtextxy(10, 300
,score);
101for (int i = 0; i < out.length(); i++)
102105
stringstream mid;
106 mid << out
;107 mid >>histryhighlyscore;
108if (histryhighlyscore>sum)
109116
else
117128
iscore.close();
129//
根據二維陣列去畫圖
130int
x, y, k;
131for (int i = 0; i < 4; i++)
132143
}144 putimage(x,y,image+k);
145}
146}
147 isover = true
;148
}149
150//
隨機產生2或者4;
151void
randintnum()
152168 isok = true
;169
break
;170
}171
}172
if(isok)
173176
}177
if (!isok)
178192
}193
if(isok)
194197
}198
}199
}200
for (int i = 0; i < 4; i++)//
檢測最後一步是否留有空位,若全滿遊戲結束
201209
}210
}211
for (int i = 0; i < 4; i++)//
遊戲失敗則重置
212220 map[i][j] = 0
;221
}222
}223
drawmap();
224}
225226
//按鍵響應
227void
keydownanddraw()
228261
}262
}263
}264
void
changeonkeydown(direction direction)
265;
267bool
canmove;
268switch (direction)//
將所有方向改為向左方向,並利用向左演算法計算各個方向
269277
}278
break
;279
case
down:
280for (int i = 0; i < 4; i++)
281286
}287
break
;288
case
left:
289for (int i = 0; i < 4; i++)
290295
}296
break
;297
case
right:
298for (int i = 0; i < 4; i++)
299304
}305
break
;306
default
:307
break
;308
}309
//向左演算法
310 canmove=turnleft(map);
311//
將向左改回各自方向
312switch
(direction)
313321
}322
break
;323
case
down:
324for (int i = 0; i < 4; i++)
325330
}331
break
;332
case
left:
333for (int i = 0; i < 4; i++)
334339
}340
break
;341
case
right:
342for (int i = 0; i < 4; i++)
343348
}349
break
;350
default
:351
break
;352
}353
if(canmove)
354358
else
359362
};363
//演算法
364bool turnleft(int map[4][4])//
按向左鍵進行合併
365378
}379
for (int i = 0; i < 4; i++)
380389
for (k = j+1; k < 4; k++)
390398
break
;399
}400
}401
}402
for (int j = 0; j < 4; j++)
403409
}410
for (int j = 0; j < 4; j++)
411416
else
417420
}421
}422
for (int i = 0; i < 4; i++)
423;
430}
431}
432return
canmove;
433 }
C 自實現2048小遊戲
include include using namespace std const int n 5 地圖為4 4 int map n n 存圖 inline void generate rand 在隨機位置產生2或4 map x y rand 2?2 4 inline void build star...
js實現2048小遊戲
頁面class hidden id end id endspan id table colspan 4 id s1 id s2 id s3 id s4 id s5 id s6 id s7 id s8 id s9 id s10 id s11 id s12 id s13 id s14 id s15 id...
JavaScript實現2048小遊戲
首先要明白該遊戲怎麼玩,即 在 4 4 的16宮格中,您可以選擇上 下 左 右四個方向進行操作,數字會按方向移動,相鄰的兩個數字相同就會合併,組成更大的數字,每次移動或合併後會自動增加乙個數字。當16宮格中沒有空格子,且四個方向都無法操作時,遊戲結束。這部分是通過類名emptyitem及nonemp...