C语言如何实现拼图游戏
C语言如何实现拼图游戏
本篇内容介绍了“C语言如何实现拼图游戏”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
制作一款拼图小游戏
#include<graphics.h>//引用图形库头文件#include<conio.h>#include<stdio.h>typedefenum{UP,DOWN,LEFT,RIGHT,UNKOWN}DRCT;constintlevel=5;DRCTgetKey(){charkey;DRCTret;key=_getch();switch(key){case'a':case'A':ret=LEFT;break;case's':case'S':ret=DOWN;break;case'd':case'D':ret=RIGHT;break;case'w':case'W':ret=UP;break;default:ret=UNKOWN;break;}returnret;}voiddrawImage(intlayout[level][level],IMAGE*pimg){intw,h;w=h=pimg->getwidth()/level;intx1,y1,x2,y2;setcolor(RGB(255,255,255));setfillcolor(RGB(0,0,0));for(inti=0;i<level;++i){for(intj=0;j<level;++j){x1=j*w;y1=i*h;if(layout[i][j]!=-1){x2=layout[i][j]%level*w;y2=layout[i][j]/level*h;putimage(x1,y1,w,h,pimg,x2,y2);}else{fillrectangle(x1,y1,x1+w,y1+h);}}}for(inti=1;i<level;++i){line(0,i*h,pimg->getwidth(),i*h);}for(inti=1;i<level;++i){line(i*w,0,i*w,pimg->getheight());}}intisGameOver(intlayout[level][level]){for(inti=0;i<level;i++){for(intj=0;j<level;j++){if(!(i==level-1&&j==level-1)){if(layout[i][j]!=i*level+j){return0;}}}}return1;}intupdateLayout(intlayout[level][level],DRCTd){intx=0,t=0;introw,col,i,j,a,b;for(i=0;i<level;i++)//先找黑框坐标i,j{for(j=0;j<level;j++){if(layout[i][j]==-1){a=i;b=j;}}}switch(d){caseUP:{row=a+1;col=b;break;}caseDOWN:{row=a-1;col=b;break;}caseLEFT:{row=a;col=b+1;break;}caseRIGHT:{row=a;col=b-1;break;}default:{row=a,col=b;break;}}//根据d的值算出与(i,j)交换的方块的坐标(row,col)if(row<0||row>level-1||col<0||col>level-1){x=0;}else{x=1;t=layout[a][b];layout[a][b]=layout[row][col];layout[row][col]=t;}//坐标(row,col)合法:交换并且ret=1//否则:ret=0returnx;}intmain(){intlayout[level][level]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,-1,22,23};initgraph(850,500);//创建绘图窗口,大小为640x480像素IMAGEimg,imgTip;loadimage(&img,_T("./image/0.jpg"));//图片为自己定义的路径loadimage(&imgTip,_T("./image/0.jpg"),200,200);drawImage(layout,&img);putimage(650,0,&imgTip);while(!isGameOver(layout)){DRCTd=getKey();//根据d的值修改layout数组中的数据if(updateLayout(layout,d))drawImage(layout,&img);}putimage(0,0,&img);outtextxy(100,50,_T("牛逼"));_getch();closegraph();//关闭绘图窗口}
“C语言如何实现拼图游戏”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注恰卡编程网网站,小编将为大家输出更多高质量的实用文章!