掃雷(C語言,無雷自闊)

2021-10-05 14:10:11 字數 3573 閱讀 5378

今天寫了乙個掃雷遊戲的**

大致分為幾個部分

首先選擇倆個棋盤,乙個顯示給使用者,乙個布雷

void

initboard

(char board[

][col]

,int row,

int col,

char elem)}}

void

setmine

(char mine[

][col]

,int row,

int col)

mine[x]

[y]=

'1';

n--;}

}

//然後顯示棋盤,對使用者輸入的座標顯示,並顯示座標附近的雷數

void

showboard

(char board[

][col]

,int row,

int col)

printf

("\n");

for(i =

1; i <= col -

2; i++

)printf

("---\n");

for(i =

1; i <= row -

2; i++

)printf

("\n");

for(j =

1; j <= col -

2; j++

)printf

("---\n");

}}char

getnum

(char mine[

][col]

,int x,

int y,

char board[

][col]

,int

*c)}}}

}

//當棋盤上的未之格仔與雷數相同時,掃雷成功

一些問題

1.棋盤大小與顯示的棋盤不符

一般輸入習慣從1開始,而陣列下標從零開始,加上檢測周圍雷數是檢測周圍8格,所以我們加棋盤橫縱各加一行,方便**書寫和使用者輸入。

2.為什麼要自動展開0,怎麼展開

為了遊戲體驗,不斷遞迴,詳情見函式getnum。

執行截圖如下

//主函式

#include

"mine.h"

static

void

menu()

intmain()

}while

(!quit)

;system

("pause");

return0;

}

//原始檔

#ifndef _mine_h_

#define _mine_h_

#include

#include

#include

#include

#pragma warning(disable:4996)

#define row 12

#define col 12

#define num 1

void

game()

;void

initboard

(char board[

][col]

,int row,

int col,

char elem)

;void

setmine

(char mine[

][col]

,int row,

int col)

;void

showboard

(char board[

][col]

,int row,

int col)

;char

getnum

(char mine[

][col]

,int x,

int y)

;//'0', '1', '2'

#endif

//實現函式檔案

#include

"mine.h"

void

initboard

(char board[

][col]

,int row,

int col,

char elem)}}

void

setmine

(char mine[

][col]

,int row,

int col)

mine[x]

[y]=

'1';

n--;}

}void

showboard

(char board[

][col]

,int row,

int col)

printf

("\n");

for(i =

1; i <= col -

2; i++

)printf

("---\n");

for(i =

1; i <= row -

2; i++

)printf

("\n");

for(j =

1; j <= col -

2; j++

)printf

("---\n");

}}char

getnum

(char mine[

][col]

,int x,

int y,

char board[

][col]

,int

*c)}}}

}void

game()

if(board[x]

[y]!=

'*')

if(mine[x]

[y]==

'0')

else

}while

(count >0)

;char

*result =

null;if

(count >0)

else

printf

("###############################\n");

printf

("%s"

, result)

;printf

("###############################\n");

showboard

(mine, row, col)

;}

C語言 掃雷

做乙個掃雷的遊戲,首先分析一下掃雷需要實現的功能 1.選擇乙個位置,如果該位置是雷則結束遊戲,並顯示所有雷的位置。如果不是雷則顯示該位置周圍雷的數量。2.如果周圍沒有雷,則該位置顯示空,並且周圍如果也為空則一併展開。3.第一次選擇時必定不是雷 4.當盤上剩餘的位置只有雷了,則遊戲也結束,並且玩家勝利...

C語言掃雷

大家想必都玩過掃雷,無論那個版本都有難度供已選擇,下面來分享乙個自己用c語言編寫的掃雷遊戲吧!編寫語言 c語言 編寫軟體 visual studio 2017 1.首先是將遊戲的測試模組寫好,要有提示玩家進入的選單函式以及選擇函式等各種需要編寫的函式想出乙個整體框架來 測試模組test。c incl...

掃雷(C語言)

1 第一次下子,不炸死。2 座標周圍沒雷,可以實現展開。標頭檔案 mine.h ifndef mine h define mine h include include include include define row 12 define col 12 define mine 20 void me...