掃雷是一款大家都熟知的小遊戲,今天我們將使用c語言實現乙個簡易版本的掃雷
1.保證第一次下子時,不被炸死
2.輸入的座標周圍沒雷,可以直接展開周圍的座標
3.輸入的座標周圍有雷時,應該顯示周圍有多少個雷
1.應該定義兩個陣列,乙個用來向玩家展示排雷的情況,乙個來存放雷
2.定義的陣列的大小,應該大於掃雷遊戲的棋盤的真實大小,防止陣列越界
(如:在掃雷的棋盤為99時,我們應該定義1111的陣列,防止陣列越界)
3.可以將**分檔案實現
分檔案將**分別寫入game.c,game.h,test.c檔案裡,可以讓**更加有條理
test.c主要寫遊戲主要框架
game.c實現需要的函式
game.h定義需要的函式
對兩個陣列初始化
//board-需要初始化的陣列
//set-初始化的元素(這裡我將'1'設定為雷,'0'代表沒有雷;將玩家看到的棋盤初始化為'*')
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 <= row; i++)
printf("\n");
} printf("-----------------------------\n");
}布置雷
//布置雷
//count-布置的雷的數量
void setmineboard(char board[rowsxmuaq][cols], int row, int col, int count)
}}排查雷
//排查雷
//num-雷的數量
void finemine(int row, int col, int num)
if (x >= 1 && x <= row&&y >= 1 && y <= col)//座標合法
}displayboard(show, row, col);//列印
}else
}else}}
保證第一次下子時,不被炸死
//保證不會在第一次時踩到雷
void safe(int x, int y, int row, int col)
} }}
統計周圍有幾個雷;
//統計座標(x,y)周圍有幾個雷;
int getminecount(int x, int y)
展開周圍座標
//展開排查周圍座標的情況
void open_mine(int x, int y)//座標周圍展開函式
if (mine[x - 1][y] == '0')
if (mine[x - 1][y + 1] == '0')
if (mine[x][y - 1] == '0')
if (mine[x][y + 1] == '0')
if (mine[x + 1][y - 1] == '0')
if (mine[x + 1][y] == '0')
if (mine[x + 1][y + 1] == '0')
}判斷勝利
//判斷剩餘未知區域的個數,個數為雷數時玩家贏
int count_show_mine(int row,int col)
} }return count;
}1.列印和布置
第乙個陣列是玩家在遊戲看到的陣列,第二個陣列是存放雷的陣列,在遊戲中第二個陣列不會被列印
2.safe函式的檢查
第乙個陣列為本來存放雷的陣列,可以看到此時(1,7)位置是有雷的,但是,我們在輸入(1,7)座標時,因為safe函式的功能,使得(1,7)位置的雷轉移到其他地方
3.由上圖可知(2,8)存放的有雷,這時我們輸入(2,8)(不是第一次輸入),遊戲結束
4.展開功能
第乙個陣列仍然為布置雷後列印出的陣列,我們可以看到(3,3)位置及周圍都沒有雷,所以我們輸入(3,3)看到其周圍8個位置也被搜尋
本文標題: c語言實現簡單掃雷原始碼
本文位址:
C 語言實現簡單掃雷遊戲
標頭檔案 game.h 主函式檔案 主入口 和函式實現檔案 game.c 一 主函式檔案 主入口 二 標頭檔案 game.h 三,標頭檔案函式實現檔案 game.c include game.h void menu void game 11 11 排查類的資訊 char show rows cols...
C語言實現掃雷
思路,建立兩個二維陣列,乙個作為雷區,乙個作為顯示區,雷區只在程式結束時顯示。每次使用者操作後重新整理顯示區的陣列成員。建立雷區二維陣列12 12,顯示區二維陣列10 10,用 0 代表安全區,1 代表雷區。雷區的陣列長度設定比顯示區的陣列長度多2,方便邊框區域計算周圍地雷數量。標頭檔案宣告 inc...
C語言實現掃雷
首先來講一講掃雷的規則 隨便點乙個格仔,會有一塊,上面的數字就代表數字周圍八個格仔會有幾個雷,是1他周圍就只有1個雷,2就有兩個雷 寫 的時候要注意構思 的框架,每個函式實現的意義在 中都有體現,首先看一下頭檔案game.h define row 9 define col 9 include inc...