*掃雷
遊戲步驟:
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 陣列的初...