C语言编程小游戏Word格式.docx
- 文档编号:19169044
- 上传时间:2023-01-04
- 格式:DOCX
- 页数:12
- 大小:15.64KB
C语言编程小游戏Word格式.docx
《C语言编程小游戏Word格式.docx》由会员分享,可在线阅读,更多相关《C语言编程小游戏Word格式.docx(12页珍藏版)》请在冰豆网上搜索。
intN=1;
//2的n次方
voidshowpane()//显示棋盘
{
cout<
<
setw(46)<
"
X2048byReason"
endl;
setw(50)<
|-----------------------|"
for(inti=0;
i<
=3;
i++)
setw(24)<
;
for(intj=0;
j<
j++)
//SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_RED);
setw
(2)<
|"
setw(4)<
pane[i][j];
if(j==3)
}
voidnewgame()//开始游戏
N=1;
i++)//初始化棋盘
pane[i][j]=0;
srand((unsigned)time(NULL));
intm=rand()%4;
intn=rand()%4;
intp=rand()%4;
intq=rand()%4;
pane[m][n]=pane[p][q]=2;
showpane();
intif2n(intx)//判断x是否是2的n次方{
intflag=0;
for(intn=1;
n<
=11;
n++)
if(x==pow(2,n))
flag=1;
if(n>
N)
N=n;
returnflag;
intupmove()//上移
3;
if(if2n(pane[i][j]+pane[i+1][j])==1)
pane[i][j]=pane[i][j]+pane[i+1][j];
pane[i+1][j]=0;
intdownmove()//下移
for(inti=3;
i>
0;
i--)
if(if2n(pane[i][j]+pane[i-1][j])==1)
pane[i][j]=pane[i][j]+pane[i-1][j];
pane[i-1][j]=0;
intleftmove()//左移
if(if2n(pane[i][j]+pane[i][j+1])==1)
pane[i][j]=pane[i][j]+pane[i][j+1];
pane[i][j+1]=0;
intrightmove()//右移
for(intj=3;
j>
j--)
if(if2n(pane[i][j]+pane[i][j-1])==1)
pane[i][j]=pane[i][j]+pane[i][j-1];
pane[i][j-1]=0;
inttestup()//能否上移测试
inttestdown()//测试能否下移
inttestleft()//测试能否左移
inttestright()//测试能否右移
intpanemax()//棋盘最大数
intmax=pane[0][0];
if(pane[i][j]>
max)
max=pane[i][j];
returnmax;
intifwin()//判断是否胜利
if(panemax()==2048)
setw(45)<
YouWin!
intifGameOver()//判断是否游戏结束
if(testup()+testdown()+testleft()+testright()==0)
setw(43)<
GameOver!
voidaddnewnumberup()//上移后添加新数{
intn;
if(N==1)
n=1;
else
n=(rand()%(N)+1);
intnewnumber=pow(2,n);
=0;
if(pane[i][j]==0)
pane[i][j]=newnumber;
return;
voidaddnewnumberdown()//下移后添加新数
intnewnumber=pow(2,n);
voidaddnewnumberleft()//左移后添加新数{
voidaddnewnumberright()//右移后添加新数{
intGetDirection()//读取方向
intret=0;
do
intch=_getch();
if(isascii(ch))
continue;
ch=_getch();
switch(ch)
case72:
ret=2;
//top
break;
case75:
ret=1;
//left
case77:
ret=3;
//right
case80:
ret=4;
//down
default:
}while(ret==0);
returnret;
voidmain()//主函数
system("
colorf9"
);
intmakesure=1;
while(makesure)
cls"
newgame();
while(ifwin()+ifGameOver()==0)
intc=GetDirection();
switch(c)
case2:
upmove();
addnewnumberup();
case4:
downmove();
addnewnumberdown();
case1:
leftmove();
addnewnumberleft();
case3:
rightmove();
addnewnumberright();
你的最后成绩为:
panemax()<
setw(60)<
若要重新开始游戏请输入1,若要结束请输入0。
cin>
>
makesure;
while(makesure!
=1&
&
makesure!
=0)
输入不正确,请重新输入!
再见~"
pause"
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 编程 小游戏