C語言小遊戲 掃雷

2021-08-20 09:57:26 字數 2939 閱讀 5887

這個小遊戲也分為三個部分的**,分別是標頭檔案,測試**和遊戲**。

1.注意初始化以及使用getwincount函式的時候字元1和字元0的使用。

2.為了玩家的體驗,第一步不可以被炸死。

3.要擴充套件,這時會用到遞迴,注意遞迴的使用。

4.可以新增標記,優化遊戲。

標頭檔案:game.h

#ifndef __game_h__

#define __game_h__

#include#include#include#include#define row 9

#define col 9

#define rows row+2

#define cols col+2

#define easy_count 10

#define mid_count 30

#define hard_count 60

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

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

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

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

void movemine(char mine[rows][cols], int i, int j);

void getminecount(char mine[rows][cols],char show[rows][cols], int i, int j);

void mark(char show[rows][cols]);

#endif //__game_h__

測試**:test.c

#define _crt_secure_no_warnings 1

#include "game.h"

void menu()

void game()

;//布雷的棋盤

char show[rows][cols] = ;//要列印的棋盤

initboard(mine, rows, cols, '0');

initboard(show, rows, cols, '*');//初始化

printf("**********************************\n");

printf("***** 1.easy 2.midium 3.hard *****\n");

printf("**********************************\n");

printf("請選擇相關難度:>");

scanf("%d",&input);

switch(input)

printf("這個棋盤有%d處雷!\n",dif);

setmine(mine, row, col, dif);//設定雷

//displayboard(mine, row, col);

displayboard(show, row, col);//輸出

findmine(mine, show, row, col, dif);//掃雷

}void test()

}while(input);

}int main()

遊戲**:game.c

#define _crt_secure_no_warnings 1

#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 dif)//設定雷 }}

void findmine(char mine[rows][cols], char show[rows][cols], int row, int col , int dif)//掃雷

if(mine[i][j] == '1')

else

}else }

if(n == (row*col-dif)) }

void getminecount(char mine[rows][cols],char show[rows][cols], int i, int j)

if(show[i][j] == '0')//如果輸入的座標沒有雷,就擴充套件 }

void movemine(char mine[rows][cols], int i, int j, int dif)//移雷

//只移走第一次輸入有雷的那個雷

}void mark(char show[rows][cols])//標記

else

show[i][j] = '!';//標記

}

結果展示:

C語言小遊戲 掃雷

1.這個小遊戲由兩個原始檔,乙個標頭檔案分工合作完成。test.c game.c game.h 2.確定基本框架,在test.c中寫主函式以及遊戲所需的基本框架 例如 menum switch 3.先確定這個遊戲需要的函式功能,在game.h中進行函式宣告,game.c中進行函式的定義,test.c...

C語言 掃雷小遊戲

第一次下子,不炸死 座標周圍沒雷,可以實現展開 遊戲結束後展示玩家用時 game.h ifndef game h define game h include include include include define row 12 define col 12 define count 10 棋盤中...

掃雷小遊戲(C語言)

c語言學完了,就嘗試過寫個掃雷的小遊戲,接下來展示一下。整個 分為三個部分 game.h define crt secure no warnings 1 include include include include define rows 11 define cols 11 define coun...