元小白(猿小白)高階日記 十四(掃雷未優化版)

2021-09-17 23:31:29 字數 1875 閱讀 7432

*掃雷

遊戲步驟:

1、設定選擇頁面

2、進入遊戲,顯示棋盤

3、輸入座標

4、判斷是否是雷,是雷,則顯示雷的布局,遊戲結束;不是雷,就顯示周圍的8個格仔中的總雷數,遊戲繼續。

具體實現:

設定兩個大小一樣的二維陣列,乙個用於隨機生成座標後,賦值為1,作為雷,乙個用於給玩家顯示的掃雷頁面。

涉及到計算雷數的邊界情況,所以設定的陣列大小要比實際使用的介面多了陣列的最外一圈。

計算周圍雷數時,因為用1表示雷,所以將周圍8個位置的陣列元素相加並賦值給當前元素就可以了

*mine.h

#ifndef _mine_h_

#define _mine_h_

#include #include #include #include #pragma warning(disable:4996)

#define row 12//此處設定的時12行12列,實際只用到10行10列

#define col 12

#define mines 20//在此設定了雷數

void menu();//選單

void game();//遊戲

void setmine(char mine_board[col], int row, int col);//埋雷,,當玩家踩到雷後,輸出此頁面即可

void playgame(char show_board[col], char mine_board[col], int row, int col);//玩遊戲

int getminenum(char mine_board[col], int i, int j);//獲得雷數

void showboard(char show_board[col], int row, int col);//展示玩家頁面

#endif

main.c

#include "mine.h"

int main()

} return 0;

}

mine.c

#include "mine.h"

void menu()//顯示選單頁面

static int getindex(int start, int end)//[1, 10],實際埋雷範圍在1--10;

void setmine(char mine_board[col], int row, int col)//埋雷 }}

int getminenum(char mine_board[col], int i, int j)//獲取雷數

void showboard(char show_board[col], int row, int col)//展示玩家頁面

printf("\n");

for (i = 1; i <= col - 1; i++)

printf("\n");

for (i = 1; i <= row - 2; i++)

printf("\n");

int k = 1;

for (; k <= col - 1; k++)

printf("\n"); }}

void playgame(char show_board[col], char mine_board[col], int row, int col)//玩家輸入座標,玩遊戲

else//意味著玩家輸入的座標位置在對應的埋雷陣列中的元素不是填充值『0』,則表示是雷

}else

if (total == mines)//當total == mines意味著玩家排除掉了整個掃雷頁面中所有的非雷元素,即剩下的都是雷了,即玩家排雷成功

}}void game()

元小白(猿小白)高階日記 三(for)

3 for for 表示式1 表示式2 表示式3 迴圈語句 表示式1 初始化部分,用於初始化變數 表示式2 條件判斷部分,用於判斷迴圈的終止 表示式3 調整部分,用於迴圈條件的調整例如 用for輸出0到10 define crt secure no warnings 1 include includ...

元小白(猿小白)高階日記 五(函式)

自定義函式 ret type fun name paral,ret type 返回值型別 fun name 函式名 paral 函式引數舉例 1 求兩個數中較大的數 define crt secure no warnings 1 include int max int x,int y else re...

元小白(猿小白)高階日記 七(陣列)

陣列是一類相同元素的集合。一 一維陣列 1 陣列的建立 type t arr name const n type t 是指數組的元素型別 const n 是乙個常量表示式,用來指定陣列的大小,即元素個數 例如 int arr1 10 char arr2 30 float arr3 33 2 陣列的初...