在練習了幾十個小短句,和其他小專案之後,我開始了第乙個比較大的,也比較經典的小遊戲——掃雷
首先需要分析,製作這個小專案所需要的大致流程
開始遊戲
初始化棋盤
給地圖中增加雷
使用者互動,輸入座標,判斷座標是否有雷
勝利/失敗
我們可以通過switch選擇語句來讓玩家開始遊戲,並通過printf函式來讓視覺化介面盡量美觀
int n;
printf("如果你要開始遊戲,請輸入1\n");
scanf("%d", &n);
switch (n)
我們準備寫乙個可改變棋盤大小的遊戲,因此我們可以將陣列的變數在標頭檔案中定義,長和寬都定義為9,但這個時候就有問題了,我們很難確定邊界的座標周圍有多少個『雷』,因此我們實際的棋盤大小要更大一些,但呈現在玩家面前的只有中間那一塊的棋盤。
#define len 9
#define tall 9
#define lens len+2
#define talls tall+2
首先,我們需要兩個陣列分別作為玩家視覺化的介面和棋盤資料,並將乙個全部置0,另乙個則全部置*作為使用者視覺化的介面,並將其列印出來
char game1[lens][talls];
char game2[lens][lens];
void init_news(char a[lens][talls],char n)//初始化全場為乙個數符
//printf("\n"); }}
void print_init(char a[lens][talls])//列印棋盤
printf("\n");
for (int i = 1; i <= len; i++)
printf("\n");
}}
我們需要隨機給地圖中增加地雷數量,可以將地雷數量設定為n,n可以改變
void product_mine(char a[lens][talls],int num)//為地圖裡初始化地雷
}
由於我們已經將棋盤全部置0,地雷置1,因此只需要將其周圍的1加起來,數字大小即為周圍地雷數量
int sum_mine(char a[lens][talls], int n, int m)
int sum = 0;
for (int i = -1; i < 2; i++) }
return sum;
}
怎麼確定勝利或者失敗呢?當棋盤總格仔-地雷數量=排雷次數。此時地圖上全都是地雷,此時勝利。
如果輸入的座標和地雷座標一致時,此時失敗。
當然,如果一次猜完之後,接下來又要猜的話需要迴圈,則應該將本函式置於死迴圈之中。
void guess_number(char a[lens][talls], char b[lens][talls],int t)
}
以上就是我這次小小的實踐的收穫和結果
當我這個程式執行時,一次只會判斷乙個座標,設想一下,如果點乙個座標,便能讓他周圍的空格子都呈現出來其數字,玩起來應該會更輕鬆一點吧
小遊戲 掃雷
c語言實現的乙個簡單的掃雷遊戲 介面簡單,功能 首次踩雷的,會換雷。掃雷有九宮格擴撒 環境 vs2015 如下 game.h pragma once ifndef game h define game h define rows 11 define cols 11 define num 9 incl...
小遊戲 掃雷
實現乙個掃雷遊戲 1.設定兩個陣列 mine row col 表示布雷,show row col 顯示掃雷情況 顯示周圍有幾個雷 因為統計四周,邊緣位置不好實現,所以把二維陣列的行和列都加二,這樣無論是否在邊緣都可以當做一種情況來實現。2.初始化mine和show,show mine 0 3.set...
掃雷小遊戲
game.h 標頭檔案 ifndef game h define game h include include include include define row 12 define col 12 define count 10 棋盤中雷的總數 extern char show mine row ...