掃雷小遊戲

2021-08-29 10:08:57 字數 4155 閱讀 8920

掃雷遊戲,

這次寫的掃雷遊戲相對於最簡單的掃雷遊戲,多加了倆個要求,

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