掃雷(C語言實現)(第一步不炸死,可實現展開)

2021-09-02 02:14:04 字數 2237 閱讀 7472

掃雷遊戲大家應該都有玩過,今天的我們用c語言實現一下掃雷遊戲。點開時第一步不炸死,而且沒有雷的周圍會展開。

實現思路

1.棋盤設計:

必須要設計倆個棋盤,乙個設計者棋盤,乙個玩家棋盤。

2.棋盤列印:  

列印棋盤

3.雷的布置

我的**中採用9*9的棋盤,布置了10個雷。用二維陣列來存棋盤的資訊,將二維陣列初始化為0,把布置雷的地方改為1.

4.開局不炸死:

實現第一次不炸死,如果第一次輸入的位置為1,就必須將這個位置的1改為0.而尋找另乙個為0的位置,將其座標改為1,來維持雷的總數不變。

5.實現展開:

在玩家輸入乙個周圍有雷的座標時,顯示周圍雷的個數

6.輸贏判斷:

由於雷的總數不變,則判斷雷的個數是否為10個,為10 時,玩家掃雷成功,遊戲結束。

跟前面寫過的三子棋遊戲一樣,還是建立乙個game.h的標頭檔案,用於定義遊戲程式內的函式。

建立乙個乙個game.c和乙個test.c的原始檔,實現遊戲。

首先給出game.h檔案,後面的遊戲實現都會呼叫到頭檔案中的函式:

然後給出test.c檔案:

#define _crt_secure_no_warnings 1

#include "game.h"

#includevoid menu()

void game()

; char show[rows][cols] = ;

initboard(mine, rows, cols, '0');//初始化設計者棋盤

initboard(show, rows, cols, '*');//初始化玩家棋盤

setmine(mine, row, col);//布雷

// displayboard(mine, row, col);//列印設計者棋盤(不能給玩家看,所以不列印)

displayboard(show, row, col);//列印玩家棋盤

safemine(mine, show, row, col);//第一次不炸死

findmine(mine, show, row, col);//排雷 }

int main()

system("pause");

return 0;

}

game.c檔案:

#define _crt_secure_no_warnings 1

#include #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 <= row; i++)//列印九乘九的棋盤

printf("\n");

} printf("\n");

}void setmine(char board[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 }

void 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);

}int iswin(char show[rows][cols], int row, int col)

}} return count; }

void findmine(char mine[rows][cols], char show[rows][cols], int row, int col)

else//如果不是雷,獲取周圍雷的個數並展開

}} else//如果座標無意義,提示座標非法

}if (iswin(show, row, col) == easy_count)

}

DE1 soc第一步實現流水燈

最近在研究de1 soc開發版,通過學習了相關資料,自己先從簡單的東西開始,就寫了乙個簡單的流水燈來熟悉開發板,之後會做一些其他相關的東西,先將這些基本的測試記錄下來,以備以後使用和相互交流,學習。以下是相關 module my first project input clk,input rst n...

程式設計第一步 C語言(3)什麼是資料型別

1 什麼是資料 資料2 為什麼要有資料 通常在資訊互動的過程中,我們需要對某一事物進行具體的描述,而不是概而論之,所以資料的需求就應運而生。3 計數機內部的資料儲存方式 跟電路方式很類似,一開一閉,剛好就形成了二進位制 0和1,通路和短路 4 計算機資料型別有哪些 在電腦程式中,離不開資料。把數字 ...

C語言實現乙個簡易的掃雷2

ifndef game h define game h define crt secure no warnings 1 include include include include define rows 11 define cols 11 define count 10 void init bo...