c語言遊戲掃雷 二維陣列運用解析

2021-09-13 15:42:06 字數 3729 閱讀 5003

思路:

先畫出遊戲的流程圖來提供乙個清晰思路,往後按流程寫**就不容易混亂。

注意:由於本程式用的是多檔案結構所以一定要聲名標頭檔案game.h

標頭檔案game.h

#ifndef _game_h_

#define _game_h_

#include

#include

#include

#define easy_count

10//雷的個數

#define rows

11//實際雷盤大小

#define cols

11#define row

9//顯示雷盤大小

#define col

9void

init

(char mine[

rows][

cols

], int rows, int cols, int set);

//初始化

void

display

(char mine[

rows][

cols

], int row, int col)

;//列印陣列

void

setmine

(char mine[

rows][

cols

], int row, int col)

;//布雷

void

findmine

(char mine[

rows][

cols

], char show[

rows][

cols

],int row, int col)

;//排雷且判輸贏

void

openmine

(char mine[

rows][

cols

], char show[

rows][

cols

], int x, int y)

;//展開座標周圍

void

safemine

(char mine[

rows][

cols

], char show[

rows][

cols

], int row, int col)

;//保證第一步不被炸死

#endif

遊戲測試模組test.c
void

test()

//遊戲測試執行

;//存放雷的資訊

char show[rows]

[cols]=;

//存放排查出雷的資訊

int input =0;

do}while

(input)

;}

遊戲執行模組game.c
#define _crt_secure_no_warnings 1

#include

"game.h"

void

init

(char mine[rows]

[cols]

,int rows,

int cols,

char set)

//初始化}}

void

display

(char mine[rows]

[cols]

,int row,

int col)

//列印陣列

printf

("\n");

for(i =

1; i <=row; i++

)printf

("\n");

}printf

("------------------------------\n");

}void

setmine

(char mine[rows]

[cols]

,int row,

int col)

//布雷}}

intcountmine

(char mine[rows]

[cols]

,int x,

int y)

//計算x,y周圍的雷數量

if(mine[x -1]

[y]==

'1')

if(mine[x -1]

[y +1]

=='1')if

(mine[x]

[y -1]

=='1')if

(mine[x]

[y +1]

=='1')if

(mine[x +1]

[y -1]

=='1')if

(mine[x +1]

[y]==

'1')

if(mine[x +1]

[y +1]

=='1'

)return count;

}void

openmine

(char mine[rows]

[cols]

,char show[rows]

[cols]

,int x,

int y)

//計算x,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')}

void

findmine

(char mine[rows]

[cols]

,char show[rows]

[cols]

,int row,

int col)

//掃雷且判輸贏

else}}

else}}

void

safemine

(char mine[rows]

[cols]

,char show[rows]

[cols]

,int row,

int col)

//保證第一步不被炸死

ret--;}

}display

(show, row, col)

;}

遊戲主函式模組main( )
#define _crt_secure_no_warnings 1

#include

"game.h"

intmain()

二維陣列應用 掃雷

遊戲簡介 電腦隨機設定10個雷,使用者輸入座標,若座標下是雷則結束遊戲,不是則該位置顯示周圍的雷數。game.h ifndef game h define game h include 設定螢幕顯示的雷盤的大小 define row 9 define col 9 設定實際雷盤的大小 判斷雷數是看使用...

C語言二維陣列

int main int argc,const char argv int array 5 建立乙個二維陣列 型別修飾符陣列名 包含幾個小陣列 每個小陣列有多少個元素 初始值如何寫?int array 3 4 一維陣列可以省略元素個數,二維陣列只能省略第一位 第乙個 3 可以不寫 第二種初始值寫法 ...

C語言 二維陣列

c語言之二維陣列 1 定義的基本格式 int a 1 2 1代表一行,2代表二列 難點 二維陣列的行列下標。字串結束標誌的實用。2 一維陣列和二維陣列的聯絡。一維陣列如同千層面一樣一層一層的,而二維陣列,只是給千層面切了幾刀 3 int a 2 3 a 0 0 是1,a 0 1 是2,a 0 2 是...