c++不 c语言编写的小游戏 2048 小游戏

用C++实现简单的2048游戏_C++,C语言_ThinkSAAS
用C++实现简单的2048游戏
用C++实现简单的2048游戏
内容来源: 网络
PHP开发框架
开发工具/编程工具
服务器环境
ThinkSAAS商业授权:
ThinkSAAS为用户提供有偿个性定制开发服务
ThinkSAAS将为商业授权用户提供二次开发指导和技术支持
让ThinkSAAS更好,把建议拿来。
开发客服微信君,已阅读到文档的结尾了呢~~
2048游戏设计与实现
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
2048游戏设计与实现
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer--144.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口C++实现2048小游戏(控制台版的)
无聊,在公司写了个2048小游戏的程序,聊以自娱。(事实是我手机坏了,没得玩)。 很简单,直接上代码了。
#include &iostream&
#include &windows.h&
#include &ctime&
int const ROW = 4;
int const COL = 4;
int game[ROW][COL] = {0};
//上下左右
int const UP = 1;
int const DOWN = 2;
int const LEFT = 3;
int const RIGHT = 4;
//游戏所处的状态
int const GAME_OVER = 1;
int const GAME_WIN = 2;
int const GAME_CONTINUE = 3;
enum GameNum
Game_2 = 2,
Game_4 = 4,
Game_8 = 8,
Game_16 = 16,
Game_32 = 32,
Game_64 = 64,
Game_128 = 128,
Game_256 = 256,
Game_512 = 512,
Game_1024 = 1024,
Game_2048 = 2048,
//打印所得的数组
void Print()
system("cls");
cout && "*****************
2048 控 制 台 版
******************" &&
cout && "*****************
By Tanzf (Intern) ******************" && endl &&
for (int i = 0; i & ROW; ++i)
cout && "---------------------------------"&&
for (int j = 0; j & COL; ++j)
if (game[i][j] == 0)
" && game[i][j] && "\t";
cout && "|" &&
cout && "---------------------------------"&&
bool CreateNumber()
int x = -1;
int y = -1;
int times = 0;
int maxTimes = ROW * COL;
//三分之二的概率生成2,三分之一的概率生成4
int whitch = rand() % 3;
x = rand() % ROW;
y = rand() % COL;
} while (game[x][y] != 0 && times &= maxTimes);
//说明格子已经满了
if(times &= maxTimes)
if(whitch == 0)
num = Game_4;
else if(whitch)
num = Game_2;
game[x][y] =
void Process(int direction)
switch (direction)
//最上面一行不动
for(int row = 1; row & ROW; ++row)
for(int crow = crow &= 1; --crow)
for(int col = 0; col & COL; ++col)
//上一个格子为空
if(game[crow-1][col] == 0)
game[crow-1][col] = game[crow][col];
game[crow][col] = 0;
if(game[crow-1][col] == game[crow][col])
game[crow - 1][col] *= 2;
game[crow][col] = 0;
case DOWN:
//最下面一行不动
for(int row = ROW - 2; row &= 0; --row)
for(int crow = crow & ROW - 1; ++crow)
for(int col = 0; col & COL; ++col)
//上一个格子为空
if(game[crow + 1][col] == 0)
game[crow + 1][col] = game[crow][col];
game[crow][col] = 0;
if(game[crow + 1][col] == game[crow][col])
game[crow + 1][col] *= 2;
game[crow][col] = 0;
case LEFT:
//最左边一列不动
col = 1; col & COL; ++col)
for(int ccol = ccol &= 1; --ccol)
for(int row = 0; row & ROW; ++row)
//上一个格子为空
if(game[row][ccol-1] == 0)
game[row][ccol - 1] = game[row][ccol];
game[row][ccol] = 0;
if(game[row][ccol - 1] == game[row][ccol])
game[row][ccol - 1] *= 2;
game[row][ccol] = 0;
case RIGHT:
//最右边一列不动
col = COL - 2; col &= 0; --col)
for(int ccol = ccol &= COL - 2; ++ccol)
for(int row = 0; row & ROW; ++row)
//上一个格子为空
if(game[row][ccol + 1] == 0)
game[row][ccol + 1] = game[row][ccol];
game[row][ccol] = 0;
if(game[row][ccol + 1] == game[row][ccol])
game[row][ccol + 1] *= 2;
game[row][ccol] = 0;
//处理输入输出,返回上下左右
int Input()
//读取上下左右四个方向键
int upArrow = 0;
int downArrow = 0;
int leftArrow = 0;
int rightArrow = 0;
int direction = 0;
while (true)
upArrow = GetAsyncKeyState(VK_UP);
downArrow = GetAsyncKeyState(VK_DOWN);
leftArrow = GetAsyncKeyState(VK_LEFT);
rightArrow = GetAsyncKeyState(VK_RIGHT);
if(upArrow)
direction = UP;
else if(downArrow)
direction = DOWN;
else if(leftArrow)
direction = LEFT;
else if(rightArrow)
direction = RIGHT;
Sleep(100);
//判断游戏状态
int Judge()
//赢得游戏
for(int i = 0; i & ROW; ++i)
for(int j = 0; j & COL; ++j)
if(game[i][j] == 2048)
return GAME_WIN;
//横向检查
for(int i = 0 ; i & ROW; ++i)
for(int j = 0; j & COL - 1; ++j)
if(!game[i][j] || (game[i][j] == game[i][j+1]))
return GAME_CONTINUE;
//纵向检查
for(int j = 0; j& COL; ++j)
for(int i = 0; i & ROW -1; ++i)
if(!game[i][j] || (game[i][j] == game[i+1][j]))
return GAME_CONTINUE;
//不符合上述两种状况,游戏结束
return GAME_OVER;
int main()
//设置一个随机数种子
srand((unsigned int)time(0));
CreateNumber();
CreateNumber();
int direction = 0;
int gameState = -1;
while(true)
direction = Input();
gameState = Judge();
if(direction && gameState == GAME_CONTINUE)
Process(direction);
CreateNumber();
Sleep(100);
else if(gameState == GAME_WIN)
cout && "You Win!" &&
else if(gameState == GAME_OVER)
cout &&"You lose!" &&
本文转载自 今夕何夕 , 原文链接: , 转载请保留本声明!
每一个你不满意的现在,都有一个你没有努力的曾经。
Copyright (C) &&
&&Powered by&}

我要回帖

更多关于 用c语言编写小游戏 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信