C語言實現簡單掃雷原始碼

2022-10-03 15:48:12 字數 2114 閱讀 9078

掃雷是一款大家都熟知的小遊戲,今天我們將使用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...