這篇文章主要講解了“怎么用C語言實(shí)現(xiàn)消消樂游戲”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“怎么用C語言實(shí)現(xiàn)消消樂游戲”吧!
創(chuàng)新互聯(lián)建站專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于成都做網(wǎng)站、網(wǎng)站建設(shè)、外貿(mào)營銷網(wǎng)站建設(shè)、中方網(wǎng)絡(luò)推廣、成都微信小程序、中方網(wǎng)絡(luò)營銷、中方企業(yè)策劃、中方品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運(yùn)營等,從售前售中售后,我們都將竭誠為您服務(wù),您的肯定,是我們最大的嘉獎(jiǎng);創(chuàng)新互聯(lián)建站為所有大學(xué)生創(chuàng)業(yè)者提供中方建站搭建服務(wù),24小時(shí)服務(wù)熱線:028-86922220,官方網(wǎng)址:www.cdcxhl.com
```c#include#include#include#include #include#include#define MAPSIZE 10int map[MAPSIZE][MAPSIZE];int map2[MAPSIZE][MAPSIZE];bool state[MAPSIZE][MAPSIZE];bool state1[MAPSIZE][MAPSIZE];typedef struct game{ int game_state; int counts; int score; int targets; int level; int state; int level_state; int tool_number; int tool_state; int start_state; PIMAGE img[21];} Game;Game game;int high=0;void init_img(){ int i; for(i=0; i<21; i++) game.img[i]=newimage(); getimage(game.img[0],"game\\underground.jpg"); getimage(game.img[1],"game\\red.jpg"); getimage(game.img[2],"game\\green.jpg"); getimage(game.img[3],"game\\blue.jpg"); getimage(game.img[4],"game\\orange.jpg"); getimage(game.img[5],"game\\purple.jpg"); getimage(game.img[6],"game\\brown.jpg"); getimage(game.img[7],"game\\123.jpg"); getimage(game.img[8],"game\\end.jpg"); getimage(game.img[9],"game\\bomb.jpg"); getimage(game.img[10],"game\\win.png"); getimage(game.img[11],"game\\hon.jpg"); getimage(game.img[12],"game\\lu.jpg"); getimage(game.img[13],"game\\lan.jpg"); getimage(game.img[14],"game\\cheng.jpg"); getimage(game.img[15],"game\\zi.jpg"); getimage(game.img[16],"game\\hui.jpg"); getimage(game.img[17],"game\\receive.png"); getimage(game.img[18],"game\\in.jpg"); getimage(game.img[19],"game\\black.jpg"); getimage(game.img[20],"game\\start.jpg");}void init_map(){ int i,j; srand(time(0)); for (i=0; ihigh) { high=game.score; save(&high); } putimage(0,0,game.img[0]); setfont(30,0,"隸書"); setcolor(EGERGB(250, 210, 0)); setbkmode(TRANSPARENT); outtextxy(10,15, "最高記錄: "); outtextxy(10,55, "關(guān)卡: "); outtextxy(150,55, "目標(biāo)分: "); sprintf(str, "%4d ", game.level); sprintf(str1, "%4d ", high); sprintf(str2, "%4d ", game.targets); sprintf(scores, "%4d ", game.score); sprintf(str3, "%d", game.tool_number); setcolor(EGERGB(255, 255, 255)); outtextxy(60, 55, str); outtextxy(150, 15, str1); outtextxy(260, 55, str2); outtextxy(205, 102, scores); setfont(25,0,"隸書"); outtextxy(410,1,str3);}void show_map(){ if(game.level_state==1) show_level(); show_word(); int i,j; for (i=0; i=MAPSIZE||y<0||y>=MAPSIZE||state[y][x]) return 0; else return 1;}//搜索周圍相同顏色void search_map(int x,int y,int target){ if((!avaliable(x,y))||map[y][x]!=target) return; state[y][x]=true; state1[y][x]=true; game.counts++; search_map(x-1,y,target); search_map(x+1,y,target); search_map(x,y-1,target); search_map(x,y+1,target);}//搜索到相同顏色后調(diào)整位置void adjust_map(){ int i,j,r,k; int temp[10][10]; for(j=MAPSIZE-1; j>=0; j--) { int m=0; int flag=1; k=j; for(i=MAPSIZE-1; i>=0; i--) if(state[i][j]==false) flag=0; if(flag==1) { if(k==MAPSIZE-1) continue; while(1) { if(k==MAPSIZE-1) break; for(i=MAPSIZE-1; i>=0; i--) { map[i][k]=map[i][k+1]; state[i][k]=state[i][k+1]; state[i][k+1]=true; } k++; } } for(i=MAPSIZE-1; i>=0; i--) if(!state[i][j]) { temp[m][j]=map[i][j]; m++; } r=MAPSIZE-1; for(i=0; i=0; r--) { state[r][j]=true; } }}//判斷是否通過本關(guān)int end_map(){ int i,j,target; int x; int y; int flag=1; for(i=0; i105&&ms.x<230&&ms.y>380&&ms.y<425) { musicc(); return 0; } if(ms.x>240&&ms.x<370&&ms.y>380&&ms.y<420) { musicc(); return 1; } } } Sleep(500); }}//點(diǎn)擊要炸裂的某一列void bomb_map(){ int i; int x,y; mouse_msg msg; while(1) { show_map(); while(mousemsg()) { msg=getmouse(); if(msg.is_left()&&msg.is_down()) { musicc(); x=msg.x/45; y=(msg.y-250)/45; if(!avaliable(x,y)) continue; for(i=0; i400&&msg.x<450&&msg.y>=40&&msg.y<100&&game.tool_number>=5)//使用炸彈 { musicp(); if(bomb_pop()) { bomb_map(); musicb(); adjust_map(); game.score=game.score+game.counts*20; game.tool_number=game.tool_number-5; show_map(); game.counts=0; } } else { x=msg.x/45; y=(msg.y-250)/45; if(!avaliable(x,y)) continue; target=map[y][x]; if((avaliable(x+1,y)&&map[y][x+1]==target)||(avaliable(x-1,y)&&map[y][x-1]==target) ||(avaliable(x,y-1)&&map[y-1][x]==target)||(avaliable(x,y+1)&&map[y+1][x]==target)) { search_map(x,y,target); game.score=game.score+game.counts*20; if(game.counts>=6) { game.tool_number=game.tool_number+3; musicu(); } flash_map(target); adjust_map(); } game.counts=0; show_map(); Sleep(100); state1_back(); if(end_map()) { if(game.score>=game.targets) { musicsheng(); game.game_state=2; return; } else if(game.score170&&ms.x<300&&ms.y>380&&ms.y<420) { musicc(); game.tool_number=10; game.tool_state=0; return ; } } } Sleep(500); }}//游戲指南界面void inter_game(){ mouse_msg ms; while(1) { putimage(0,0,game.img[18]); while(mousemsg()) { ms=getmouse(); if(ms.is_left()&&ms.is_down()) { musicc(); game.game_state=0; return; } } Sleep(500); }}void start_game(){ mouse_msg ms; if(game.start_state==1) { putimage(0,0,game.img[19]); Sleep(500); putimage(0,0,game.img[20]); Sleep(500); game.start_state=0; } while(1) { putimage(0,0,game.img[7]); while(mousemsg()) { ms=getmouse(); if(ms.is_left()&&ms.is_down()) { musicc(); if(ms.x>140&&ms.x<310&&ms.y>370&&ms.y<410) { if(game.tool_state==1) { musicp(); get_tool(); } game.game_state=1; game.level_state=1; return; } if(ms.x>140&&ms.x<310&&ms.y>420&&ms.y<460) { game.game_state=3; return; } if(ms.x>140&&ms.x<310&&ms.y>470&&ms.y<500) { game.game_state=5; return; } } } Sleep(500); }}void fail_again(){ int i,j; int target; int x,y; int flag=0; mouse_msg msg; for(i=0; i400&&msg.x<450&&msg.y>=40&&msg.y<100&&game.tool_number>=5) { musicp(); if(bomb_pop()) { bomb_map(); musicb(); adjust_map(); game.score=game.score+game.counts*20; game.tool_number=game.tool_number-5; show_map(); game.counts=0; } } else { x=msg.x/45; y=(msg.y-250)/45; if(!avaliable(x,y)) continue; target=map[y][x]; if((avaliable(x+1,y)&&map[y][x+1]==target)||(avaliable(x-1,y)&&map[y][x-1]==target) ||(avaliable(x,y-1)&&map[y-1][x]==target)||(avaliable(x,y+1)&&map[y+1][x]==target)) { search_map(x,y,target); game.score=game.score+game.counts*20; if(game.counts>=6) { game.tool_number=game.tool_number+3; musicu(); } flash_map(target); adjust_map(); } game.counts=0; show_map(); Sleep(100); state1_back(); if(end_map()) { if(game.score>=game.targets) { musicsheng(); game.game_state=2; return; } else if(game.score115&&msg.x<222&&msg.y>400&&msg.y<430) { musicc(); game.game_state=0; game.state=0; game.level=1; game.targets=1500; game.score=0; return ; } if(msg.x>230&&msg.x<336&&msg.y>400&&msg.y<430) { musicc(); if(game.level>1) game.score=game.score-1500; else if(game.level==1) game.score=0; game.game_state=4; return ; } } } Sleep(500); }}void win_game(){ mouse_msg msg; while(1) { show_map(); putimage_transparent(NULL,game.img[10],130,300,0); while (mousemsg()) { msg = getmouse(); if(msg.is_left()&&msg.is_down()) { musicc(); game.level++; game.targets=game.targets+1600; game.state=1; game.game_state=1; game.level_state=1; game.tool_number=game.tool_number+2; return ; } } Sleep(500); }}void play(){ while(1) { if(game.game_state==0) start_game(); else if(game.game_state==1) play_game(); else if(game.game_state==-1) end_game(); else if(game.game_state==2) win_game(); else if(game.game_state==4) fail_again(); else if(game.game_state==5) inter_game(); else if(game.game_state==3) return ; }}int main(){ initgraph(450,700); game.game_state=0; game.counts=0; game.score=0; game.targets=1500; game.level=1; game.tool_number=0; game.tool_state=1; game.start_state=1; init_img(); mciSendString("open game\\under.mp3 alias mymusicg",NULL,0,NULL); mciSendString("play mymusicg repeat",NULL,0,NULL); read(&high); play(); closegraph(); mciSendString("close mymusicg repeat",NULL,0,NULL); return 0;}
感謝各位的閱讀,以上就是“怎么用C語言實(shí)現(xiàn)消消樂游戲”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對(duì)怎么用C語言實(shí)現(xiàn)消消樂游戲這一問題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!
網(wǎng)頁題目:怎么用C語言實(shí)現(xiàn)消消樂游戲
轉(zhuǎn)載來于:
http://weahome.cn/article/pgogdc.html