掃雷遊戲,
這次寫的掃雷遊戲相對於最簡單的掃雷遊戲,多加了倆個要求,
1.第一步一定不會排到雷
(總是會有些倒霉鬼,第一步就排到雷,為了給這些特定玩家一點遊戲體驗,也只好給他們開開掛了)
2.如果周圍沒有雷則展開一片
(大家都玩過掃雷,如果不展開的話,快速結束遊戲方法就只有排到雷了)
掃雷遊戲的難點,我覺得還是排雷以及展開一片的函式
展開一片,
第一步,確認周圍雷的個數,如果是零則開始寫展開**,不是的話就返回雷的個數給雷盤
第二步,遍歷周圍的最多八個位置,遞迴求出每個位置周圍的雷數,直到排到有雷的位置,將雷數返回 給雷盤
void
openup_mine
(char mine[rows]
[cols]
,int x,
int y,
int* p ,
char show[rows]
[cols])}
}//若周圍沒雷,則遍歷周圍的最多八個位置,遞迴求出每個位置周圍的雷數
}else
}}
排雷並判斷輸贏
第一步,玩家輸入座標,並判斷座標是否合法
第二步,判斷遊戲繼續還是結束
第三步,判斷是否為第一步排到雷,就是開頭提到的第二點要求,是的話就重新再佈乙個雷
//排雷並判斷輸贏
void
findmine
(char mine[rows]
[cols]
,char show[rows]
[cols]
,int row,
int col)
else
}else
displayboard
(show, rows, cols);}
else
}//贏取遊戲條件
if(count ==
(row*col - easy_count)
)}
好了其他地方就相對比較簡單,我就直接貼**了
#ifndef __game_h__
#define __game_h__
#include
#include
#include
#include
#define easy_count 10
#define row 9
#define col 9
#define rows row+2
#define cols col+2
//初始化棋盤
void
initboard
(char arr[rows]
[cols]
,int rows,
int cols,
char set)
;//列印雷陣
void
displayboard
(char arr[rows]
[cols]
,int row,
int col)
;//布置雷
void
setmine
(char arr[rows]
[cols]
,int row,
int col,
int count)
;//排雷
void
findmine
(char mine[rows]
[cols]
,char show[rows]
[cols]
,int row,
int col)
;//展開
void
openup_mine
(char mine[rows]
[cols]
,int x,
int y,
int* p,
char show[rows]
[cols]);
//計算周圍雷數
intgetminecount
(char mine[rows]
[cols]
,int x,
int y)
;void
game()
;#endif
//__game_h__
#define _crt_secure_no_warnings 1
#include
"game.h"
//初始化雷盤
void
initboard
(char arr[rows]
[cols]
,int rows,
int cols,
char set)
//列印雷盤
void
displayboard
(char arr[rows]
[cols]
,int row,
int col)
printf
("\n");
for(i =
1; i < row-
1; i++
)printf
("\n");
}}//埋雷
void
setmine
(char arr[rows]
[cols]
,int row,
int col,
int count)}}
//計算周圍雷的個數
intgetminecount
(char mine[rows]
[cols]
,int x,
int y)
//若周圍沒有雷,則展開一片
void
openup_mine
(char mine[rows]
[cols]
,int x,
int y,
int* p ,
char show[rows]
[cols])}
}//若周圍沒雷,則遍歷周圍的最多八個位置,遞迴求出每個位置周圍的雷數
}else}}
//排雷並判斷輸贏
void
findmine
(char mine[rows]
[cols]
,char show[rows]
[cols]
,int row,
int col)
else
}else
displayboard
(show, rows, cols);}
else
}//贏取遊戲條件
if(count ==
(row*col - easy_count))}
//遊戲函式
void
game()
;char showboard[rows]
[cols]=;
initboard
(mineboard, rows, cols,
'0')
;initboard
(showboard, rows, cols,
'*')
;setmine
(mineboard, row, col, count)
;displayboard
(showboard, rows, cols)
;printf
("\n");
displayboard
(mineboard, rows, cols)
;findmine
(mineboard, showboard, rows, cols)
;}
#define _crt_secure_no_warnings 1
#include
"game.h"
//遊戲進入選項
void
menu()
//主函式
intmain()
case0:
default:}
}while
(input)
;system
("pause");
return0;
}
小遊戲 掃雷
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 ...