日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
C語(yǔ)言中怎么實(shí)現(xiàn)一個(gè)掃雷程序-創(chuàng)新互聯(lián)

這期內(nèi)容當(dāng)中小編將會(huì)給大家?guī)?lái)有關(guān)C語(yǔ)言中怎么實(shí)現(xiàn)一個(gè)掃雷程序,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

在寬甸等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場(chǎng)前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供成都網(wǎng)站制作、成都網(wǎng)站建設(shè) 網(wǎng)站設(shè)計(jì)制作定制設(shè)計(jì),公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),品牌網(wǎng)站制作,營(yíng)銷型網(wǎng)站,外貿(mào)網(wǎng)站制作,寬甸網(wǎng)站建設(shè)費(fèi)用合理。

整個(gè)游戲設(shè)計(jì)中主要的函數(shù)為:

1、初始化地雷棋盤和顯示棋盤

2、棋盤打印函數(shù)

3、掃雷函數(shù)的實(shí)現(xiàn)

4、游戲主函數(shù)

大家可以在宏定義中改變棋盤大小,雷的個(gè)數(shù),以及顯示的無(wú)雷區(qū)范圍。

廢話不說(shuō) 直接上代碼:(未優(yōu)化,請(qǐng)多包涵 )

#ifndef __MINE_H__ 
#define __MINE_H__ 
 
#define LINES 11     // 棋盤的行 
#define ROWS 11     // 棋盤的列 
#define mine_MAX 10    // 雷的數(shù)目 
#define EAXY 3      // 簡(jiǎn)單顯示的范圍 
#define COMMON 2     // 普通顯示的范圍 
#define DIFFICULT 1     // 困難顯示的范圍 
 
enum op 
{ 
 EXIT, 
 PLAY 
}; 
void game(char mine[LINES][ROWS],char text[LINES][ROWS],int lines,int rows);  //游戲基本實(shí)現(xiàn)函數(shù) 
void init_mine(char mine[LINES][ROWS],char text[LINES][ROWS],int lines,int rows);// 初始化棋盤函數(shù) 
void play_EAXY_game(char mine[LINES][ROWS],char text[LINES][ROWS]);    // 簡(jiǎn)單游戲函數(shù) 
void play_COMMON_game(char mine[LINES][ROWS],char text[LINES][ROWS]) ;   //普通游戲函數(shù) 
void play_DIFFICULT_game(char mine[LINES][ROWS],char text[LINES][ROWS]) ;  //困難游戲函數(shù) 
void mine_EAXY_sweep(char mine[LINES][ROWS],char text[LINES][ROWS]);    //簡(jiǎn)單掃雷實(shí)現(xiàn) 
void mine_COMMON_sweep(char mine[LINES][ROWS],char text[LINES][ROWS]);   //普通掃雷實(shí)現(xiàn) 
void mine_DIFFICULT_sweep(char mine[LINES][ROWS],char text[LINES][ROWS]) ;  //困難掃雷實(shí)現(xiàn) 
void print(char tab[LINES][ROWS]); //打印棋盤 
 
#endif
#include 
#include"mine.h" 
#include 
#include 
void init_mine(char mine[LINES][ROWS],char text[LINES][ROWS],int lines,int rows)  //初始化顯示棋盤和雷盤 
{ 
 int i; 
 int j; 
 int a; 
 int b; 
 int count=0; 
 for(i=1; i(LINES-2) || a<0 || b<0 || b>(ROWS-2) || text[a][b]!='*') 
   { 
    printf("輸入不合法!\n"); 
    goto flag; 
  } 
  else 
 if(mine[a][b]=='0')   //判斷是否觸雷 
 { 
  printf("您踩雷了!\n"); 
  break; 
 } 
 else 
 { 
  for(i=(a-EAXY);i<=(a+EAXY);i++) 
  { 
    for(j=(b-EAXY);j<=(b+EAXY);j++) 
    { 
     if(mine[i][j]=='1') 
     { 
      int x=0;         //周圍雷的數(shù)量 
      if(mine[i-1][j-1]=='0') 
      { 
       x++; 
      } 
       if(mine[i-1][j]=='0') 
      { 
       x++; 
      }  
       if(mine[i-1][j+1]=='0') 
      { 
       x++; 
      }  
       if(mine[i][j-1]=='0') 
      { 
       x++; 
      }  
       if(mine[i][j+1]=='0') 
      { 
       x++; 
      }  
       if(mine[i+1][j-1]=='0') 
      { 
       x++; 
      }  
       if(mine[i+1][j]=='0') 
      { 
       x++; 
      }  
       if(mine[i+1][j+1]=='0') 
      { 
       x++; 
      }  
       text[i][j]=(x+'0'); 
     } 
 
    } 
  } 
 } 
  for(x=1;x<=(LINES-2);x++) 
  { 
   for(y=1;y<=(ROWS-2);y++) 
   { 
    if(text[x][y]=='*') 
     count++; 
   } 
  } 
  
 }while(count>mine_MAX); 
 if(count==mine_MAX) 
 { 
  printf("恭喜你 掃雷成功!\n"); 
 } 
} 
void mine_COMMON_sweep(char mine[LINES][ROWS],char text[LINES][ROWS])    //普通整個(gè)游戲進(jìn)程 
{ 
 int a; 
 int b; 
 int count; 
 do     //是否將雷全部掃完 
 { 
  int i; 
  int j; 
  int x; 
  int y; 
   count = 0;  // 雷的個(gè)數(shù) 
  print(text); 
  print(mine); 
flag:  printf("請(qǐng)輸入坐標(biāo)=》"); 
  scanf("%d %d",&a,&b); 
  if(a>(LINES-2) || a<0 || b<0 || b>(ROWS-2) || text[a][b]!='*') 
   { 
    printf("輸入不合法!\n"); 
    goto flag; 
  } 
  else 
 if(mine[a][b]=='0')   //判斷是否觸雷 
 { 
  printf("您踩雷了!\n"); 
  break; 
 } 
 else 
 { 
  for(i=(a-COMMON);i<=(a+COMMON);i++) 
  { 
    for(j=(b-COMMON);j<=(b+COMMON);j++) 
    { 
     if(mine[i][j]=='1') 
     { 
      int x=0;         //周圍雷的數(shù)量 
      if(mine[i-1][j-1]=='0') 
      { 
       x++; 
      } 
       if(mine[i-1][j]=='0') 
      { 
       x++; 
      }  
       if(mine[i-1][j+1]=='0') 
      { 
       x++; 
      }  
       if(mine[i][j-1]=='0') 
      { 
       x++; 
      }  
       if(mine[i][j+1]=='0') 
      { 
       x++; 
      }  
       if(mine[i+1][j-1]=='0') 
      { 
       x++; 
      }  
       if(mine[i+1][j]=='0') 
      { 
       x++; 
      }  
       if(mine[i+1][j+1]=='0') 
      { 
       x++; 
      }  
       text[i][j]=(x+'0'); 
     } 
 
    } 
  } 
  print(text); 
 } 
  for(x=1;x<=(LINES-2);x++) 
  { 
   for(y=1;y<=(ROWS-2);y++) 
   { 
    if(text[x][y]=='*') 
     count++; 
   } 
  } 
  
 }while(count>mine_MAX); 
 if(count==mine_MAX) 
 { 
  printf("恭喜你 掃雷成功!\n"); 
 } 
} 
void mine_DIFFICULT_sweep(char mine[LINES][ROWS],char text[LINES][ROWS])    //困難整個(gè)游戲進(jìn)程 
{ 
 int a; 
 int b; 
 int count ;  // 雷的個(gè)數(shù) 
 do     //是否將雷全部掃完 
 { 
  int i; 
  int j; 
  int x; 
  int y; 
  count = 0; 
  print(text); 
  print(mine); 
flag:  printf("請(qǐng)輸入坐標(biāo)=》"); 
  scanf("%d %d",&a,&b); 
  if(a>(LINES-2) || a<0 || b<0 || b>(ROWS-2) || text[a][b]!='*') 
   { 
    printf("輸入不合法!\n"); 
    goto flag; 
  } 
  else 
 if(mine[a][b]=='0')   //判斷是否觸雷 
 { 
  printf("您踩雷了!\n"); 
  break; 
 } 
 else 
 { 
  for(i=(a-DIFFICULT);i<=(a+DIFFICULT);i++) 
  { 
    for(j=(b-DIFFICULT);j<=(b+DIFFICULT);j++) 
    { 
     if(mine[i][j]=='1') 
     { 
      int x=0;         //周圍雷的數(shù)量 
      if(mine[i-1][j-1]=='0') 
      { 
       x++; 
      } 
       if(mine[i-1][j]=='0') 
      { 
       x++; 
      }  
       if(mine[i-1][j+1]=='0') 
      { 
       x++; 
      }  
       if(mine[i][j-1]=='0') 
      { 
       x++; 
      }  
       if(mine[i][j+1]=='0') 
      { 
       x++; 
      }  
       if(mine[i+1][j-1]=='0') 
      { 
       x++; 
      }  
       if(mine[i+1][j]=='0') 
      { 
       x++; 
      }  
       if(mine[i+1][j+1]=='0') 
      { 
       x++; 
      }  
       text[i][j]=(x+'0'); 
     } 
 
    } 
  } 
  print(text); 
 } 
  for(x=1;x<=(LINES-2);x++) 
  { 
   for(y=1;y<=(ROWS-2);y++) 
   { 
    if(text[x][y]=='*') 
     count++; 
   } 
  } 
  
 }while(count>mine_MAX); 
 if(count==mine_MAX) 
 { 
  printf("恭喜你 掃雷成功!\n"); 
 } 
}
#include 
#include"mine.h" 
#include 
void emun() 
{ 
 printf("***********************\n"); 
 printf("******* 1.play ******\n"); 
 printf("******** 0.exit ******\n"); 
 printf("***********************\n"); 
} 
void emun_dift()         //選擇難度菜單 
{ 
 printf("*********************\n"); 
 printf("****** 1.簡(jiǎn)單 *******\n"); 
 printf("****** 2.普通 *******\n"); 
 printf("****** 3.困難 *******\n"); 
 printf("*********************\n"); 
} 
void play_EAXY_game(char mine[LINES][ROWS],char text[LINES][ROWS]) //玩簡(jiǎn)單游戲 
{ 
  time_t t_start,t_end; 
 printf("計(jì)時(shí)開(kāi)始?。n"); 
 t_start = time(NULL);  //開(kāi)始計(jì)時(shí) 
 mine_EAXY_sweep(mine,text); 
 t_end = time(NULL);  //計(jì)時(shí)結(jié)束 
 printf("您所用時(shí)間為:%.0f \n",difftime(t_end,t_start)); 
} 
void play_COMMON_game(char mine[LINES][ROWS],char text[LINES][ROWS]) //玩普通游戲 
{ 
  time_t t_start,t_end; 
 printf("計(jì)時(shí)開(kāi)始??!\n"); 
 t_start = time(NULL);  //開(kāi)始計(jì)時(shí) 
 mine_COMMON_sweep(mine,text); 
 t_end = time(NULL);  //計(jì)時(shí)結(jié)束 
 printf("您所用時(shí)間為:%.0f \n",difftime(t_end,t_start)); 
} 
void play_DIFFICULT_game(char mine[LINES][ROWS],char text[LINES][ROWS]) //玩困難游戲 
{ 
  time_t t_start,t_end; 
 printf("計(jì)時(shí)開(kāi)始!!\n"); 
 t_start = time(NULL);  //開(kāi)始計(jì)時(shí) 
 mine_DIFFICULT_sweep(mine,text); 
 t_end = time(NULL);  //計(jì)時(shí)結(jié)束 
 printf("您所用時(shí)間為:%.0f \n",difftime(t_end,t_start)); 
} 
void game() 
{ 
 int input = 0; 
 int flout = 0; 
 char mine[LINES][ROWS]={0};   //定義雷盤 
 char text[LINES][ROWS]={0};   //定義顯示盤 
 
 init_mine(mine,text,LINES,ROWS);      //初始化雷盤 
 
 do 
 { 
  emun(); 
  init_mine(mine,text,LINES,ROWS);      //初始化雷盤 
  printf("請(qǐng)選擇=》"); 
   scanf("%d",&input); 
  switch(input) 
  { 
  case PLAY: 
   { 
    emun_dift(); 
   printf("請(qǐng)選擇=》"); 
   scanf("%d",&flout); 
   switch(flout) 
   { 
   case 1: 
    play_EAXY_game(mine,text); 
    break; 
   case 2: 
    play_COMMON_game(mine,text); 
    break; 
   case 3: 
    play_DIFFICULT_game(mine,text); 
    break; 
   } 
   } 
   break; 
  case EXIT: 
   break; 
  } 
 }while(input); 
 
} 
int main() 
{ 
 game(); 
 return 0; 
}

上述就是小編為大家分享的C語(yǔ)言中怎么實(shí)現(xiàn)一個(gè)掃雷程序了,如果剛好有類似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)網(wǎng)站建設(shè)公司行業(yè)資訊頻道。

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)建站www.cdcxhl.com,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。


當(dāng)前名稱:C語(yǔ)言中怎么實(shí)現(xiàn)一個(gè)掃雷程序-創(chuàng)新互聯(lián)
當(dāng)前鏈接:http://www.dlmjj.cn/article/jdhhi.html