C語言 掃雷

2021-09-23 17:06:35 字數 2611 閱讀 4722

game.h

#ifndef __game_h__

#define __game_h__

#define _crt_secure_no_warnings 1

#include#include#include#include#define easy_count 10

#define row 9

#define col 9

#define rows row+2

#define cols col+2

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 safemine(char mine[rows][cols], char show[rows][cols], int row, int col);

#endif //__game_h_

**game.c**

#define _crt_secure_no_warnings 1

#include 「game.h」

//初始化棋盤

//由於玩家棋盤和設計者棋盤需要的引數不一樣,所以不能全部初始化為全0或全『』,需要定義乙個set用來傳參。

void initboard(char board[rows][cols], int rows, int cols, char set)//設定乙個字元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)

}test.c

#define _crt_secure_no_warnings 1

#include "game.h"

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);//排雷

}void menu()

void test()

} while (input);

}int main()

C語言 掃雷

做乙個掃雷的遊戲,首先分析一下掃雷需要實現的功能 1.選擇乙個位置,如果該位置是雷則結束遊戲,並顯示所有雷的位置。如果不是雷則顯示該位置周圍雷的數量。2.如果周圍沒有雷,則該位置顯示空,並且周圍如果也為空則一併展開。3.第一次選擇時必定不是雷 4.當盤上剩餘的位置只有雷了,則遊戲也結束,並且玩家勝利...

C語言掃雷

大家想必都玩過掃雷,無論那個版本都有難度供已選擇,下面來分享乙個自己用c語言編寫的掃雷遊戲吧!編寫語言 c語言 編寫軟體 visual studio 2017 1.首先是將遊戲的測試模組寫好,要有提示玩家進入的選單函式以及選擇函式等各種需要編寫的函式想出乙個整體框架來 測試模組test。c incl...

掃雷(C語言)

1 第一次下子,不炸死。2 座標周圍沒雷,可以實現展開。標頭檔案 mine.h ifndef mine h define mine h include include include include define row 12 define col 12 define mine 20 void me...