遊戲開啟介面為選單,選擇『1』開始遊戲,列印出乙個9*9棋盤,系統隨機設定10個雷,之後玩家輸入座標進行遊戲,第一次不會踩到雷,如果走的棋盤格周圍的8個格仔都沒有雷,直接展開空格,繼續掃瞄這8個格仔各自周圍的8個格仔是否有雷,如果有雷則顯示雷的個數,沒有雷就繼續展開,如果踩到雷,遊戲結束,列印存放雷的資訊的棋盤。
我們需要兩個棋盤,乙個是程式設計者棋盤,乙個為顯示給玩家的棋盤
1.初始化棋盤,給兩個棋盤分別賦值,乙個賦為『0』,乙個賦為『*』.
void initboard(char board[rows][cols], int rows, int cols, char set)
}}
2.列印棋盤
void displayboard(char board[rows][cols], int row, int col)
printf("\n");
for (i = 1; i <=col; i++)
printf("\n");
}}
3.布置雷
void setmine(char mine[rows][cols], int row, int col)
}}
4.展開一片
void openmine(char mine[rows][cols], char show[rows][cols], int row, int col,int x,int y)//展開一片
else
}
5.保證第乙個不踩雷
void first_safemine(char mine[rows][cols], char show[rows][cols], int row, int col)//確保第乙個不踩雷
ret--;
} }openmine(mine, show, row, col, x, y);
displayboard(show, row, col);
}
6.排雷:設定乙個變數win,如果win小於棋盤除了雷所佔的格仔外的格仔數量,繼續排雷,直到win與剩下的格仔數相等則排雷成功。
void findmine(char mine[rows][cols], char show[rows][cols], int row, int col)
else
} else
printf("座標非法!");
} if (win == row*col - easy_count)
}
7.設定乙個函式,獲取這個座標周圍的雷的數量
int getminecount(char mine[rows][cols], int x, int y)
三個檔案:
game.**件
# define _crt_secure_no_warnings 1
# include # include # include # define row 9
# define col 9
# define rows row+2
# define cols col+2
# define easy_count 10
void initboard(char board[rows][cols], int rows, int cols, char set);
void displayboard(char board[rows][cols], int row, int col);
void setmine(char mine[rows][cols], int row, int col);
int getminecount(char mine[rows][cols], int x, int y);
void first_safemine(char mine[rows][cols], char show[rows][cols], int row, int col);
void findmine(char mine[rows][cols], char show[rows][cols], int row, int col);
game.c檔案
#include "game.h"
void initboard(char board[rows][cols], int rows, int cols, char set) }}
void displayboard(char board[rows][cols], int row, int col)
printf("\n");
for (i = 1; i <= col; ++i)
printf("\n"); }}
void setmine(char mine[rows][cols], int row, int col)//設定雷 }}
int getminecount(char mine[rows][cols], int x, int y)//獲取座標周圍的雷的數量
void openmine(char mine[rows][cols], char show[rows][cols], int row, int col, int x, int y)//展開一片
else
show[x][y] = getminecount(mine, x, y) + '0';
}void first_safemine(char mine[rows][cols], char show[rows][cols], int row, int col)//保證第乙個不踩雷
ret--;
} }openmine(mine, show, row, col, x, y);
displayboard(show, row, col);
}void findmine(char mine[rows][cols], char show[rows][cols], int row, int col)//排雷
else
}else
printf("座標非法!\n");
} if (win == row*col - easy_count) }
void menu()
void game()
; char show[rows][cols] = ;
initboard(mine, rows, cols, '0');
initboard(show, rows, cols, '*');
displayboard(show, row, col);
setmine(mine, row, col);
first_safemine(mine, show, row, col);
findmine(mine, show, row, col);
}void testfunc()
} while (input);
}
test.c檔案
#include "game.h"
int main()
C語言實現掃雷小遊戲
我們首先說一下基本思路 首先我們需要兩個面板,乙個顯示面板,乙個雷面板,這兩個面板需要用二維陣列來實現。其次,要在雷面板中布置雷,然後需要輸入座標,排查雷,繼而判斷是否踩到雷,如果踩到雷,那麼玩家死翹翹,遊戲結束,如果沒有踩到雷,需要判斷此座標周圍雷的個數。如果最後設定雷的總個數全部被排查出來,那麼...
C語言實現掃雷小遊戲
本文將從一行行 中詳解掃雷小遊戲,對每乙個模組都使用詳細的注釋,使這個掃雷小遊戲簡單易懂。首先,簡單分析掃雷的玩法,掃雷就是在乙個棋盤中布置適當數量的雷數玩家通過對雷陣的排查,來找出雷的位置。如果玩家選擇的座標周圍無雷將自動展開這片區域,若有雷會顯示雷數。1.定義兩個適當大小的雷陣,乙個用來埋雷,判...
用C語言實現掃雷小遊戲
多檔案實現掃雷遊戲,並滿足 第一次不被炸死 當座標周圍沒雷,可以實現展開 建立兩個12 12的陣列,乙個實現埋雷等操作mine 12 12 另乙個則是使用者所見的介面board 12 12 在mine.h中進行一些檔案引入和定義及宣告 mine.h ifndef mine h define mine...