文章目錄
- 先開始還是進行主頁面的書寫
- 進行游戲的判斷(對與主頁面的break也要注意不要省略)
- 已經進入游戲中,具體步驟
- 首先進行陣列和字串的出
- 進行雷的布置(用自建的函式搞定)
- 坑人注意,小編用數字1代替了字符1!導致除錯非常多時間沒有搞定!
- 然后進行主界面的列印
- 之后是進行排雷操作,而且帶有勝利的高興!
- 在這里有自定義一個函式用來計算周圍的雷的個數!
改游戲的關鍵還是模塊化的思維方式
先開始還是進行主頁面的書寫
用menu函式書寫主頁面
void menu(void){
printf("************************\n");
printf("**** **1,play ********\n");
printf("********0,exit *********\n");
printf("->");
return 0;}
用這個進行主頁面的列印
進行游戲的判斷(對與主頁面的break也要注意不要省略)
用do {}while();進行實作
int main(void){
int input;
do{
menu(void);
scanf("%d",&input);
switch(input)
case 1:
game(void);
break;
case 0:
printf("退出游戲")'
}while(input)
return 0;}
已經進入游戲中,具體步驟
首先進行陣列和字串的出
始化利用兩組字符陣列進行初始化!用函式簡單化初初始化,減少自己的操作量!
void Initboard(char board[ROWS][COLS],int row,int col,char set){
int i = 0;
int j = 0;
for (i = 0; i < row; i++) {
for (j = 0; j < col; j++) {
board[i][j] = set ;
}
}
}
進行雷的布置(用自建的函式搞定)
坑人注意,小編用數字1代替了字符1!導致除錯非常多時間沒有搞定!
void Setmine(char mine[ROWS][COLS],int row,int col){
int count = EASY_COUNT;
while (count) {
int x = rand()%row +1;
int y = rand()%col +1;
if (mine[x][y] == '0') {
mine[x][y] = '1';
count--;
}
}
}
然后進行主界面的列印
void Displayboard(char board[ROWS][COLS],int row,int col){
int i = 0;
int j = 0;
for (i = 0; i <=col; i++) {
printf("%d",i);
}
printf("\n");
for (i = 1; i <= row; i++) {
printf("%d",i);
for (j = 1; j <= col; j++) {
printf("%c",board[i][j]);
}
printf("\n");
}
}
之后是進行排雷操作,而且帶有勝利的高興!
void FindMine(char mine[ROWS][COLS],char show[ROWS][COLS],int row,int col){//mine是雷的布局,show是主頁面
int x = 0;
int y = 0;
int win = 0;
while (win < row*col-EASY_COUNT) {
printf("請輸入要排查的坐>>");
scanf("%d %d",&x,&y);
if (x > 0 && x <= row &&y > 0 && y <= col) {
if (mine[x][y] == '1') {
printf("恭喜你被炸死\n");
Displayboard(mine, row, col);
break;
}
else
{
int n = get_mine_count(mine,x,y);
show[x][y] = n+'0';
Displayboard(show, row, col);
win++;
}
}
else{
printf("坐標錯誤,請重新輸入\n");
}
if (EASY_COUNT == win) {
printf("恭喜你,排雷成功");
Displayboard(mine, ROW, COL);
}
}
}
在這里有自定義一個函式用來計算周圍的雷的個數!
int get_mine_count(char mine[ROWS][COLS],int x,int y){
return mine[x - 1][y] +
mine[x - 1][y - 1] +
mine[x][y - 1] +
mine[x + 1][y - 1] +
mine[x + 1][y] +
mine[x + 1][y + 1] +
mine[x][y + 1] +
mine[x - 1][y + 1] - 8*'0';
}
——————————————————————————————————————
上面是具體內容,不喜歡不要噴!這個不是復制其他人的,是自己做的!
如果喜歡給小編一個贊好嗎?
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/356195.html
標籤:其他
上一篇:三子棋小游戲
下一篇:C語言實作【掃雷游戲】拓展版
