前言:
之前一直想實現下掃雷,偶然在貼吧裡看到有人出題,於是心血來潮就寫了下。
題目:
掃雷遊戲是windows裡一款十分經典的單機小遊戲,請你用c程式自己建立乙個掃雷小遊戲。掃雷的遊戲規則:系統可以隨機產生乙個m行n列的雷區,包含若干顆地雷,使用者可以挖開乙個區域,如果是地雷,遊戲結束,失敗;
如果不是,顯示出它周圍的地雷個數,如果能把所有安全的地區找出來,獲勝。 注:每個格仔周圍格有八個:上、下、左、右、左上、右上、左下、右下。
執行結果:
請輸入雷區的範圍:
3 5x x x x x
x x x x x
x x x x x
請輸入安全的位置:
2 2x x x x x
x 3 x x x
x x x x x
請輸入安全的位置:
3 4x x x x x
x 3 x x x
x x x o x
很不幸,你踩到雷了,遊戲結束!
玩家選取乙個座標,如果發現座標位置是乙個地雷則遊戲結束,否則座標為安全區域,並且該區域會將周圍(上、下、左、右、左上、左下、右上、右下)的地雷數顯示出來。如果周圍都沒有地雷則根據遊戲規則,系統會自動幫你以當前座標為起點向外擴充套件排除掉那些周圍沒有地雷的座標。所以這就是為什麼有時候選取乙個座標時會挖出一大塊安全區域。好了這就是掃雷的基本遊戲規則。
c語言隨機函式
用一維陣列代替二維陣列
二維陣列的應用
遞迴–>深度優先搜尋
**:
#include#include #include //深度搜尋時用到的方向陣列,分別是上 下 左 右
int dir[4][2] = ,,,};
//檢查周圍地雷的方向陣列,分別是左上、上、右上、左、右、左下、下、右下
int around[8][2] = ,,,,,,,};
int x,y,z; //行 列 雷
int *map; //雷區
char *view; //玩家視野
//初始化雷區
void init() }
//周圍雷數
int checkmine(int px, int py)
//若踩雷遊戲結束
if(map[y*px+py])
iswin = 0;
break;
} //否則對安全座標排雷
if(view[y*px+py]=='o')
clearmine(px,py);
viewscreen(); //列印玩家檢視
//判斷是否獲勝
if(checkwin())
}if(iswin)
printf("恭喜獲勝!");
else
printf("很不幸,你踩到雷了,遊戲結束!");
return 0;
}
C語言寫的掃雷小程式
還記得上初中那會,上資訊課都在電腦上玩的掃雷嗎?那時候只會玩,不知道怎麼實現,現在有了這個能力,也寫了乙個,雖然很糙,但還是能湊合玩的。廢話不多說,直接上 define crt secure no warnings 1 ifndef game h define game h include incl...
C語言實現掃雷小程式
掃雷 是一款大眾類的益智小遊戲,於1992年發行。遊戲目標是在最短的時間內根據點選格仔出現的數字找出所有非雷格仔,同時避免踩雷,踩到乙個雷即全盤皆輸。在實現遊戲的首先,需要建立test.c game.c game.h三個檔案。test.c主要進行遊戲的測試。game.c主要進行遊戲內部一些函式的具體...
C語言 掃雷
做乙個掃雷的遊戲,首先分析一下掃雷需要實現的功能 1.選擇乙個位置,如果該位置是雷則結束遊戲,並顯示所有雷的位置。如果不是雷則顯示該位置周圍雷的數量。2.如果周圍沒有雷,則該位置顯示空,並且周圍如果也為空則一併展開。3.第一次選擇時必定不是雷 4.當盤上剩餘的位置只有雷了,則遊戲也結束,並且玩家勝利...