C語言陣列應用的簡單應用 掃雷遊戲

2021-08-19 06:16:37 字數 3039 閱讀 8932

1.掃雷遊戲——————c初學者的簡單版本

實現: ①難度選擇,不同的雷數的計算方法產生不同的難度;

②第一次踩到雷不會跳出;

③如果座標周圍沒有雷的時候,擴充套件座標。

源**:

game.h

//*//*檔名稱:排雷遊戲

//*//*當前版本:1.1

//*完成日期:2023年4月23日

//*//*取代版本:1.0

//*#ifndef _game_h_

#define _game_h_

#include #include #include enum option

;#define row 10

#define col 10

#define rows row+2

#define cols col+2

extern int nume ;//置0和不置0有區別

extern int spacenumber;

void inte***ce();

int choose(int a);

void initboard(char board[rows][cols], int rows, int cols, char set);

void printboard(char board[rows][cols], int rows, int cols);

void setmine(char board[rows][cols],int row,int col);

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

int getminecount(char mine[rows][cols], int x, int y);

void expand(char mine[rows][cols], char show[rows][cols], int row, int col, int x, int y);

#endif//_game_h_

game.c

#include "game.h"

int nume;//全域性變數定義

int spacenumber;//全域性變數定義

//初始化陣列

void initboard(char board[rows][cols], int rows, int cols, char set) }}

//列印陣列

void printboard(char board[rows][cols], int row, int col)

printf("\n");

for (i = 0; i < row; i++)

printf("\n");

} printf("\n");

}//設定炸彈

void setmine(char board[rows][cols]) }}

//返回玩家輸入座標周圍的雷數

static int getminecount(char mine[rows][cols], int x, int y)

//利用函式遞迴呼叫實現的擴充套件函式

void expand(char mine[rows][cols], char show[rows][cols], int row, int col, int x, int y)

if (show[x][y + 1] == '*')

if (show[x - 1][y] == '*')

if (show[x + 1][y] == '*')

}else }

//找雷函式

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

else

}else

if (0 == (x >= 1 && x <= row && y >= 1 && y <= col))

}} if (row*col-sum == nume)

}

find.c

#include "game.h"

int nume;//全域性變數定義

int spacenumber;//全域性變數定義

//選單函式

void menu()

//選擇介面

void inte***ce()

//難度選擇,返回不同的雷的數目

int choose(int a) }}

//遊戲函式

void game()

; char show[rows][cols] = ;

initboard(mine, row, col, '0');//布雷的函式初始化為『0』

initboard(show, rows, cols, '*');//顯示的函式初始化為『0』

//printboard(mine, row, col);

printboard(show, row, col);

setmine(mine,row,col);//生成隨機位置的雷

//printboard(mine, row, col);

findmine(mine, show, row, col);//找雷函式

}//執行函式

void test()

case 2:

printf("您將退出遊戲!\n");

break;

default:

printf("您輸錯了,請再輸入!\n");

break;

} } while (input);

}//主函式

int main()

注:**在vs2013上已執行,無誤。

已知bug:(我也想改,但不會,所以會繼續以優化-_+)

①:當遊戲是 9*9 時,如果我把雷數設定成80個時,編譯成功,但執行會出現問題

發現的問題:

①:全域性變數在標頭檔案中初始化為0和不為0效果不一樣,待解決,

陣列的應用 掃雷

1.在game.h中進行巨集定義,標頭檔案引入以及函式宣告 2.在main.c中實現主函式 3.在game.c中實現功能函式 除了基本的功能外,還實現以下幾個功能 1.第一步不會炸 2.點到周圍沒有雷的區域會自動展開 3.可以做標記 4.顯示當前雷數 5.顯示已用時間 待拓展的功能 選關 需要定義兩...

二維陣列應用 掃雷

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

C語言的簡單應用 陣列實現多項式

這是乙個基於陣列實現的乙個簡單多項式結構 主要的缺點就是會浪費很大記憶體空間 include include include define max 100 typedef struct node polymariol 把多項式初始化為0 void zero polymariol poly poly ...