test2.c:整個遊戲,開始遊戲/退出遊戲的大體執行流程
game2.c:具體實現掃雷遊戲功能的函式定義
遊戲的大體執行流程
#include
"game2.h"
//選單函式
void
menu()
//遊戲函式
void
game()
;//玩家不能看
//2.排查雷資訊的棋盤
char show[rows]
[cols]=;
//玩家進行遊戲時候的棋盤
//初始化棋盤
initboard
(mine, rows, cols,
'0')
;initboard
(show, rows, cols,
'*')
;//列印棋盤
displayboard
(show, row, col)
;//布置雷
setmine
(mine, row, col)
;//掃雷
findmine
(mine,show, row, col);}
intmain()
}while
(input)
;return0;
}
具體實現掃雷遊戲功能的函式定義
#include
"game2.h"
//對mine棋盤,一開始全初始化為'0',後面放雷的座標位置改為'1'
//對show棋盤,一開始全初始化為'*',後面掃雷時玩家選擇的座標位置改為周圍雷的個數
void
initboard
(char
(*p)
[cols]
,int row,
int col,
char set)
//set為需要初始化的字元}}
void
displayboard
(char
(*ps)
[cols]
,int row,
int col)
printf
("\n");
printf
(" ");
for(i =
1; i <=
9; i++
)printf
("\n");
//列印最左邊的數字座標和分隔行以及相應的棋盤內容
for(i =
1; i <= row; i++
)printf
("\n");
}}void
setmine
(char
(*pm)
[cols]
,int row,
int col)}}
//把座標周圍8個位置的字元相加再減去8 * '0',ascll編碼的差值就是周圍雷的個數
static
intfind_mine_count
(char
(*pm)
[cols]
,int x,
int y)
void
findmine
(char
(*pm)
[cols]
,char
(*ps)
[cols]
,int row,
int col)
else
//座標不重複的情況
else
//沒踩雷的情況}}
else
//座標錯誤的情況
}//最後判斷迴圈結束是因為踩雷之後break跳出的還是掃雷成功結束迴圈的
if(win == row * col - max_mine)
}
巨集定義,函式宣告,引用相關c庫函式的標頭檔案
//引用庫函式的標頭檔案
#include
#include
#include
//宣告表示棋盤大小的量
#define row 9
#define col 9
#define rows 11
#define cols 11
#define max_mine 10
//宣告函式
void
initboard
(char
(*p)
[cols]
,int row,
int col,
char set)
;void
displayboard
(char
(*ps)
[cols]
,int row,
int col)
;void
setmine
(char
(*pm)
[cols]
,int row,
int col)
;void
findmine
(char
(*pm)
[cols]
,char
(*ps)
[cols]
,int row,
int col)
;
C語言 掃雷遊戲
標頭檔案 ifndef mine h define mine h define line 10 define list 10 define rows 6 define cows 6 int game char userboard line 2 list 2 char playerboard line...
C語言 掃雷遊戲
要求 1 第一下輸入座標,不炸死。2 座標周圍沒有雷,可以實現展開。思想 一 用乙個測試函式test 完成使用者的整個遊戲體驗,放在主函式中。二 test 函式中應該完成的內容 選單選擇和遊戲部分。選單選擇即menu 函式 遊戲部分即game 函式 因為是遊戲,所以以使用者體驗為先,先讓使用者玩一把...
掃雷遊戲C語言
掃雷遊戲c語言 include include include define max row 9 define max col 9 define max mine count 10 char mine map max row max col 雷的位置 char show map max row ma...