亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 網站 > 幫助中心 > 正文

C語言實現賓果消消樂

2024-07-09 22:42:59
字體:
來源:轉載
供稿:網友

本文實例為大家分享了C語言賓果消消樂的具體代碼,供大家參考,具體內容如下

```c#include<graphics.h>#include<stdio.h>#include<windows.h>#include <conio.h>#include<time.h>#include<mmsystem.h>#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; i<MAPSIZE; i++)    for (j=0; j<MAPSIZE; j++)    {      state[i][j]=false;      map[i][j]=rand()%6+1;      map2[i][j]=map[i][j];//備份圖形    }}void read(int *high){  FILE *fp;  fp=fopen("bag.b","rb");  if(fp==NULL)    return;  fread(high,sizeof(int),1,fp);  fclose(fp);}void save(int *high){  FILE *fp;  fp=fopen("bag.b","wb");  if(fp==NULL)    return;  fwrite(high,sizeof(int),1,fp);  fclose(fp);}//顯示關卡void show_level(){  char str[4],str2[8];  putimage(0,0,game.img[0]);  sprintf(str, "%4d ", game.level);  sprintf(str2, "%4d ", game.targets);  setfont(40,0,"隸書");  setcolor(EGERGB(255,255,255));  setbkmode(TRANSPARENT);  outtextxy(160,330,"第  關");  outtextxy(160,330,str);  setfont(30,0,"隸書");  outtextxy(150,400,"目標分:");  outtextxy(270,400,str2);  Sleep(1000);  cleardevice();}//顯示分數void show_word(){  char str[4],str1[8],str2[8],scores[8],str3[4];  if(game.score>high)  {    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, "關卡: ");  outtextxy(150,55, "目標分: ");  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; i++)  {    for (j=0; j<MAPSIZE; j++)      if(!state[i][j])      {        if(map[i][j]==1)          putimage(j*45,i*45+250,game.img[map[i][j]]);        else if(map[i][j]==2)          putimage(j*45,i*45+250,game.img[map[i][j]]);        else if(map[i][j]==3)          putimage(j*45,i*45+250,game.img[map[i][j]]);        else if(map[i][j]==4)          putimage(j*45,i*45+250,game.img[map[i][j]]);        else if(map[i][j]==5)          putimage(j*45,i*45+250,game.img[map[i][j]]);        else if(map[i][j]==6)          putimage(j*45,i*45+250,game.img[map[i][j]]);      }  }}//音頻void musicu(){  mciSendString("close mymusicu",NULL,0,NULL);  mciSendString("open game//unbelievable.mp3 alias mymusicu",NULL,0,NULL);  mciSendString("play mymusicu",NULL,0,NULL);}void musicc(){  mciSendString("close mymusicc",NULL,0,NULL);  mciSendString("open game//click.mp3 alias mymusicc",NULL,0,NULL);  mciSendString("play mymusicc",NULL,0,NULL);}void musicf(){  mciSendString("close mymusicf",NULL,0,NULL);  mciSendString("open game//fail.mp3 alias mymusicf",NULL,0,NULL);  mciSendString("play mymusicf",NULL,0,NULL);}void musicd(){  mciSendString("close mymusicd",NULL,0,NULL);  mciSendString("open game//delt.mp3 alias mymusicd",NULL,0,NULL);  mciSendString("play mymusicd",NULL,0,NULL);}void musicb(){  mciSendString("close mymusicb",NULL,0,NULL);  mciSendString("open game//bomb.mp3 alias mymusicb",NULL,0,NULL);  mciSendString("play mymusicb",NULL,0,NULL);}void musicp(){  mciSendString("close mymusicp",NULL,0,NULL);  mciSendString("open game//popwindows.mp3 alias mymusicp",NULL,0,NULL);  mciSendString("play mymusicp",NULL,0,NULL);}void musicsheng(){  mciSendString("close mymusicsheng",NULL,0,NULL);  mciSendString("open game//成功.mp3 alias mymusicsheng",NULL,0,NULL);  mciSendString("play mymusicsheng",NULL,0,NULL);}//判斷此位置是否符合int avaliable(int x,int y){  if(x<0||x>=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);}//搜索到相同顏色后調整位置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<m; i++)    {      map[r][j]=temp[i][j];      state[r][j]=false;      r--;    }    for(; r>=0; r--)    {      state[r][j]=true;    }  }}//判斷是否通過本關int end_map(){  int i,j,target;  int x;  int y;  int flag=1;  for(i=0; i<MAPSIZE; i++)    for(j=0; j<MAPSIZE; j++)      if(!state[i][j])      {        x=j;        y=i;        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))        {          flag=0;          break;        }      }  return flag;}//彈出炸彈窗口,選擇是否使用道具int bomb_pop(){  mouse_msg ms;  while(1)  {    show_map();    putimage(88, 280, game.img[9]);    while(mousemsg())    {      ms=getmouse();      if(ms.is_left()&&ms.is_down())      {        if(ms.x>105&&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);  }}//點擊要炸裂的某一列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; i<MAPSIZE; i++)          if(state[i][x]==false)          {            state[i][x]=true;            game.counts++;          }        return;      }    }    Sleep(500);  }}//打印出要消除圖形的碎片void flash_map(int target){  int i,j;  show_map();  for(i=0; i<MAPSIZE; i++)    for(j=0; j<MAPSIZE; j++)      if(state1[i][j]==true)      {        musicd();        if(target==1)          putimage(j*45,i*45+250,game.img[11]);        else if(target==2)          putimage(j*45,i*45+250,game.img[12]);        else if(target==3)          putimage(j*45,i*45+250,game.img[13]);        else if(target==4)          putimage(j*45,i*45+250,game.img[14]);        else if(target==5)          putimage(j*45,i*45+250,game.img[15]);        else if(target==6)          putimage(j*45,i*45+250,game.img[16]);      }  Sleep(200);}//碎片消除后,恢復以前狀態void state1_back(){  int i,j;  for(i=0; i<MAPSIZE; i++)    for(j=0; j<MAPSIZE; j++)      state1[i][j]=false;}void play_game(){  init_map();  int target;  int x,y;  int i,j;  mouse_msg msg;  if(game.state==0)//重新開始游戲時將現有分數置為0    game.score=0;  else    game.score=game.score;  while(1)  {    show_map();    game.level_state=0;    while(mousemsg())    {      msg=getmouse();      if(msg.is_left()&&msg.is_down())      {        musicc();        if(msg.x>400&&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.score<game.targets)            {              musicf();              game.game_state=-1;              return ;            }          }        }      }    }  }}//領取魔法魚void get_tool(){  mouse_msg ms;  while(1)  {    putimage(0,0,game.img[7]);    putimage_transparent(NULL,game.img[17],88,280,0);    while(mousemsg())    {      ms=getmouse();      if(ms.is_left()&&ms.is_down())      {        if(ms.x>170&&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; i<MAPSIZE; i++)    for(j=0; j<MAPSIZE; j++)    {      state[i][j]=false;      map[i][j]=map2[i][j];    }  while(1)  {    show_map();    while(mousemsg())    {      msg=getmouse();      if(msg.is_left()&&msg.is_down())      {        musicc();        if(msg.x>400&&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.score<game.targets)            {              musicf();              game.game_state=-1;              return ;            }          }        }      }    }  }}void end_game(){  mouse_msg msg;  while(1)  {    show_map();    putimage(100, 320, game.img[8]);    setfont(30,0,"隸書");    setcolor(EGERGB(255,255,255));    setbkmode(TRANSPARENT);    outtextrect(120,330, 180,450,"闖關失敗,是否重闖本關?");    while (mousemsg())    {      msg = getmouse();      if(msg.is_left()&&msg.is_down())      {        if(msg.x>115&&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;}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲色图校园春色| 欧美丝袜美女中出在线| 久久久久久69| 久久久人成影片一区二区三区观看| 欧美另类暴力丝袜| 欧美成人精品激情在线观看| 日日摸夜夜添一区| 国产一区深夜福利| 亚洲精品国偷自产在线99热| 国产精品第1页| 日产日韩在线亚洲欧美| 一区二区福利视频| 成人国产精品色哟哟| 668精品在线视频| 欧美大成色www永久网站婷| 欧亚精品在线观看| 欧美激情高清视频| 国产精品入口免费视| 精品福利在线观看| 久久成人精品电影| 亚洲欧美激情视频| 欧美多人爱爱视频网站| 精品国产一区二区三区久久久狼| 亚洲人成欧美中文字幕| 最近2019免费中文字幕视频三| 在线成人激情黄色| 26uuu另类亚洲欧美日本老年| 欧美又大又硬又粗bbbbb| 日韩在线视频国产| 5278欧美一区二区三区| 一区二区三区国产视频| 91日本视频在线| 国产精品午夜一区二区欲梦| 色偷偷888欧美精品久久久| 欧美俄罗斯性视频| 国产欧美久久久久久| 亚洲一级黄色片| 2019亚洲日韩新视频| 久久久人成影片一区二区三区| 国产精品 欧美在线| 中文字幕亚洲情99在线| 日韩中文字幕网址| 亚洲成人久久一区| 欧美高清电影在线看| 亚洲天堂色网站| 中文字幕视频一区二区在线有码| 亚洲淫片在线视频| 欧美专区在线视频| 久久夜色精品国产| 国外日韩电影在线观看| 欧美日韩国产二区| 久久久精品2019中文字幕神马| 亚洲第一视频网站| 中文字幕欧美精品在线| 欧美一区深夜视频| 久操成人在线视频| 国产成人精彩在线视频九色| 成人观看高清在线观看免费| 国产日韩专区在线| 日韩美女中文字幕| 51视频国产精品一区二区| 欧美日韩国产激情| 亚洲一区制服诱惑| 91欧美精品午夜性色福利在线| 亚洲精品久久久久久久久久久久| 久久综合免费视频| 欧美激情综合亚洲一二区| 国产精品网红直播| 成人激情视频小说免费下载| 最近中文字幕2019免费| 性欧美xxxx| 亚洲国产精品久久久久| 久久国产精品久久国产精品| 欧美精品免费在线| 久久久久久成人| 久久精品成人欧美大片古装| 国产成人aa精品一区在线播放| 一本一本久久a久久精品综合小说| 国产精品久久久久999| 欧美制服第一页| 日本91av在线播放| 在线看福利67194| 日韩精品在线影院| 韩国视频理论视频久久| 久久久精品网站| 亚洲男人av电影| 日韩欧美亚洲综合| 日韩一级黄色av| 国产日韩av在线播放| 成人久久一区二区三区| 青青草原成人在线视频| 久久精品99无色码中文字幕| 精品国产一区二区三区久久久狼| 亚洲成人精品视频在线观看| 欧美日韩亚洲精品内裤| 国产日产亚洲精品| 久久久精品欧美| 日韩av在线影视| 孩xxxx性bbbb欧美| 欧美午夜久久久| 欧美精品www在线观看| 91精品国产777在线观看| 亚洲一区二区国产| 国产精品自拍偷拍| 欧美一区二区三区艳史| 国产精品在线看| 国产精品久在线观看| 欧美精品一区三区| 亚洲欧洲成视频免费观看| 久99久在线视频| 国产精品永久免费观看| 日韩有码在线视频| 亚洲影视中文字幕| 欧美高清性猛交| 亚洲娇小xxxx欧美娇小| 日本精品视频网站| 欧美黑人xxxⅹ高潮交| 国产欧美一区二区| 亚洲电影在线看| 亚洲精品白浆高清久久久久久| 精品国产福利在线| 中文国产成人精品| 国产一区二中文字幕在线看| 26uuu另类亚洲欧美日本一| 日本高清视频精品| 欧美国产日韩中文字幕在线| 欧美精品久久久久久久| 欧美另类极品videosbestfree| 日韩免费在线电影| 日韩精品福利网站| 97精品伊人久久久大香线蕉| 国产精品∨欧美精品v日韩精品| 国产精品精品久久久| 北条麻妃一区二区在线观看| 国内精品美女av在线播放| 日韩在线免费高清视频| 爱福利视频一区| 狠狠色噜噜狠狠狠狠97| 久久亚洲一区二区三区四区五区高| 欧美老女人性生活| 亚洲电影免费在线观看| 欧美激情精品久久久久久蜜臀| 欧美日韩国产精品一区二区三区四区| 亚洲国产99精品国自产| 国产精品久久久久久久久久久新郎| 亚洲第一中文字幕在线观看| 亚洲一区中文字幕| 日韩av毛片网| 一区二区欧美日韩视频| 欧美丰满少妇xxxx| 日韩福利伦理影院免费| 国产成人福利夜色影视| 国产精品久久久久久久久| 亚洲欧洲国产一区| 久久99青青精品免费观看| 中文字幕亚洲一区在线观看| 欧美大全免费观看电视剧大泉洋| 亚洲精品国产精品自产a区红杏吧| 国产一级揄自揄精品视频| 久久久免费在线观看| 日韩欧美亚洲国产一区| 91丨九色丨国产在线| 久精品免费视频| 亚洲一级片在线看|