掃雷小遊戲

2021-10-12 10:41:43 字數 1789 閱讀 8227

#define _crt_secure_no_warnings

#include

#include

#include

//■//定義兩個陣列,乙個是顯示的使用者介面;乙個是系統隨機生成好的,用來進行比較的。

int arr[11]

[11]=

;int arr0[9]

[9]=

;//給arr0展示陣列賦初值

void

setarr0()

}}//顯示使用者介面

void

setshow

(int sign)

int num =10;

if(sign ==0)

//使用者找到十個地雷,那麼就將自動翻開所有區域,若仍有地雷,則失敗

if(num ==0)

}break;}

if(bomb ==0)

else

exit(0

);}printf

("\t\t\t%d\n"

, num)

;for

(int i =

0; i <

9; i++

)printf

("\n");

}}//用來生成座標

intsetxy()

//用隨機數生成乙個9*9含有10個地雷的系統陣列

void

setmap()

}/*for (int i = 0; i < 11; i++)

}}*/

}//在系統給定的陣列中標記數字,即每個格仔周圍的一圈有多少個地雷

void

setsign()

}}arr[i]

[j]= n;}}

}//展示系統陣列

/* for (int i = 0; i < 11; i++)

}}*/

}//本程式中,最難的地方在於,若使用者選到空白的地方,如何展示一片相連的區域,在查閱過資料之後,得到可以使用遞迴函式來解決

//解決方法來自於csdn上jether大佬的一篇部落格——掃雷遊戲設計原理

void

accept

(int x,

int y)

if(arr[x]

[y]==0)

}}else

if(x ==

9&& y ==9)

}}if(x ==

1&& y ==9)

}}else

if(x ==

9&& y ==1)

}}else

if(x ==1)

}}else

if(y ==1)

}}else

if(y ==9)

}}elseif(

11}}

else}}

//由於才疏學淺,不會使用游標,所以就只能讓使用者輸入陣列來進行遊玩

void

input()

else

elseif(

(arr[x]

[y]!=10)

&&(arr[x]

[y]!=0)

)else}}

}int

main()

此**還不完全,沒能實現真正的掃雷,主要問題就是:

沒有實現第一次踩到的不是地雷;

使用者選擇乙個點之後,不能完全展開不是地雷的相連區域,只能展開 3 * 3 的區域,後續我會繼續改進,等我學到的知識足夠了,一定能解決這個問題。

發表於 2020-10-30 22:03

小遊戲 掃雷

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 ...