C++实现猜牌小游戏.docx
- 文档编号:26948220
- 上传时间:2023-06-24
- 格式:DOCX
- 页数:10
- 大小:357.63KB
C++实现猜牌小游戏.docx
《C++实现猜牌小游戏.docx》由会员分享,可在线阅读,更多相关《C++实现猜牌小游戏.docx(10页珍藏版)》请在冰豆网上搜索。
C++实现猜牌小游戏
C++实现猜牌小游戏
这是大一的时用C写的猜牌小游戏,里面用了easyx图形库,供大家参考,具体内容如下
运行效果
实现代码
#include
#include
#include
#include
#include
#include
#pragmacomment(lib,"winmm.lib")
#defineHANG4
#defineLIE4
#defineSIZE200
intg_matt[HANG][LIE]={0};
intg_matt_time[HANG][LIE]={0};
intg_matt_mask[HANG*LIE]={0};
IMAGEimg[10];
voidPut(){
charjpg[50];
for(inti=0;i<10;i++){
sprintf(jpg,"images\\%d.jpg",i);
loadimage(&img[i],jpg,SIZE,SIZE);
//printf("%s\n",jpg);
}
}
intgetNextNumber()
{
charstat[8]={0};
for(inti=0;i for(intj=0;j if(g_matt[i][j]>0&&g_matt[i][j]<9)//让数组里面的数不能重复出现3次 stat[g_matt[i][j]-1]++;// //printf("%c",stat); } } charn=0; while (1){ n=rand()%8+1;//随机1到8 if(stat[n-1]>=2){//判断这个数组里面不能出现2个以上重复的1到8 continue; }else{ break; } } returnn; } voidPlayone(){ for(inti=0;i for(intj=0;j g_matt[i][j]=getNextNumber(); printf("%d",g_matt[i][j]); } printf("\n"); } for(inti=0;i for(intj=0;j if(g_matt[i][j]>=1&&g_matt[i][j]<=8) g_matt[i][j]+=20; printf("%d",g_matt[i][j]); } printf("\n"); } } voidPlus(){ for(inti=0;i for(intj=0;j if(g_matt[i][j]==1){ putimage(i*SIZE,j*SIZE,&img[1]); } elseif(g_matt[i][j]==2){ putimage(i*SIZE,j*SIZE,&img[2]); } elseif(g_matt[i][j]==3){ putimage(i*SIZE,j*SIZE,&img[3]); } elseif(g_matt[i][j]==4){ putimage(i*SIZE,j*SIZE,&img[4]); } elseif(g_matt[i][j]==5){ putimage(i*SIZE,j*SIZE,&img[5]); } elseif(g_matt[i][j]==6){ putimage(i*SIZE,j*SIZE,&img[6]); } elseif(g_matt[i][j]==7){ putimage(i*SIZE,j*SIZE,&img[7]); } elseif(g_matt[i][j]==8){ putimage(i*SIZE,j*SIZE,&img[8]); } elseif(g_matt[i][j]>=20&&g_matt[i][j]<=28){ putimage(i*SIZE,j*SIZE,&img[0]); } elseif(g_matt[i][j]>100){ putimage(i*SIZE,j*SIZE,&img[9]); } } } } voidPlay(){ MOUSEMSGmsg={0}; msg=GetMouseMsg(); //if(WM_LBUTTONDOWN==matt[msg.x][msg.y]>=20||matt[msg.x][msg.y]<=28){ switch(msg.uMsg) { caseWM_LBUTTONDOWN: { introw=msg.y/SIZE; intcol=msg.x/SIZE; if(g_matt[col][row]>=20&&g_matt[col][row]<=28){ g_matt[col][row]-=20; //printf("%d",g_matt[col][row]); } //mciSendString("openimages\\click.wav",NULL,NULL,NULL); mciSendString("playimages\\click.wav",NULL,NULL,NULL); Sleep(10); mciSendString("cloesimages\\click.wav",NULL,NULL,NULL); } } //cleardevice(); } voidOver(){ int*p=(int*)g_matt+1; for(inti=0;i for(intj=i+1;j if(p[i]<=8&&p[i]>=1&&p[i]==p[j]){ p[i]+=120; p[j]+=120; //mciSendString("openimages\\search.wav",NULL,NULL,NULL); mciSendString("playimages\\search.wav",NULL,NULL,NULL); Sleep(10); mciSendString("cloesimages\\search.wav",NULL,NULL,NULL); } } } } voidKeep(){ for(inti=0;i for(intj=0;j if(g_matt[i][j]>=1&&g_matt[i][j]<=8){ g_matt[i][j]+=20; //printf("%d",g_matt[i][j]); } } printf("\n"); } } intmain(){ //int*p1; mciSendString("openimages\\东京不太热.mp3",NULL,NULL,NULL); mciSendString("playimages\\东京不太热.mp3",NULL,NULL,NULL); srand(time(NULL)); HWNDhwnd=initgraph(800,800); Put(); Playone(); intframes=0; DWORDt1,t2,t3; t1=GetTickCount();//程序运行时间 while (1) { t2=GetTickCount(); Plus();//贴图 Play();//鼠标点击 if(t2-t1>=1600){//等于当前时间减去程序运行时间大于等于两秒才运行也就是卡两秒 Keep();//加密 //continue; t1=t2;//当前时间赋给程序运行时间 } Over(); charch[16]={0}; charn=0; for(inti=0;i for(intj=0;j if(g_matt[i][j]>=120){ ch[g_matt[i][j]-1]++; } } } while(n>6){ if(ch[n-1]>=6){//判断这个数组里面不能出现2个以上重复的1到8 MessageBox(hwnd,"恭喜你赢了","",MB_OK); //continue; n++; } } } return0; }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 实现 小游戏