小專案 掃雷小遊戲

2021-09-01 05:32:04 字數 3602 閱讀 9716

#pragma once

#define _crt_secure_no_warnings

#include

"stdio.h"

#include

"stdlib.h"

#include

"time.h"

#define max_row 10

#define max_col 10

#define mine_count 10

/*---翻開計數---*/

int blank_count;

/*---遊戲開始選單列印---*/

void

game_menu()

;/*---顯示地圖和地雷地圖的初始化---*/

void

map_init

(char show_map[max_row +2]

[max_col +2]

,char mine_map[max_row +2]

[max_col +2]

);/*---地圖列印---*/

void

map_display

(char map[max_row +2]

[max_col +2]

);/*---地圖更新---*/

void

map_update

(char show_map[max_row +2]

[max_col +2]

,char mine_map[max_row +2]

[max_col +2]

,int row,

int col)

;/*---遊戲執行---*/

void

game_run()

;/*---勝利判斷---*/

intwin_check

(char show_map[max_row +2]

[max_col +2]

);

#include

"mine_sweep.h"

/*---遊戲開始選單列印---*/

void

game_menu()

/*---顯示地圖和地雷地圖的初始化---*/

void

map_init

(char show_map[max_row +2]

[max_col +2]

,char mine_map[max_row +2]

[max_col +2]

)}/*---地雷地圖的初始化---*/

for(

int i =

0; i < max_row +

2; i++)}

/*---隨機產生mine_count個雷,放入地雷地圖中---*/

int mine_count =0;

while

(mine_count < mine_count)

mine_map[row]

[col]

='1'

; mine_count++;}

}/*---地圖列印---*/

void

map_display

(char map[max_row +2]

[max_col +2]

)printf

("\n");

/*---按行列印具體的地圖---*/

for(

int i =

1; i <= max_row; i++

)printf

("\n");

}}/*---地圖更新---*/

void

map_update

(char show_map[max_row +2]

[max_col +2]

,char mine_map[max_row +2]

[max_col +2]

,int row,

int col)

for(

int j = col -

1; j <= col +

1; j++

)/*---跳過(row, col)位置---*/

else

if(i == row && j == col)

else}}

}}}/*---勝利判斷---*/

intwin_check

(char show_map[max_row +2]

[max_col +2]

)}}return count;

}/*---遊戲執行---*/

void

game_run()

printf

("請輸入座標: \n");

/*---清除輸入緩衝區---*/

fflush

(stdin);

input_check =

scanf

("%d %d"

,&row,

&col);if

(input_check !=2)

if(row <

1|| row > max_row ||

col <

1|| col > max_col)

if(mine_map[row]

[col]

=='1'

)map_update

(show_map, mine_map, row, col);}

}

/*

** 掃雷遊戲

*/#include

"mine_sweep.h"

intmain()

/*---輸入1遊戲開始---*/

else

if(game_start_flag ==1)

/*---輸入0遊戲結束---*/

else

if(game_start_flag ==0)

/*---輸入0和1以外的字元,無效---*/

else

}system

("pause");

return0;

}

對於點開乙個位置,如何將周圍八個位置全部展開的**如下:

該方案使用遞迴呼叫的方法,對翻開為0的位置,遍歷周圍八個位置,統計其雷的數量,如果為0,重複上述操作。

/*---地圖更新---*/

void

map_update

(char show_map[max_row +2]

[max_col +2]

,char mine_map[max_row +2]

[max_col +2]

,int row,

int col)

for(

int j = col -

1; j <= col +

1; j++

)/*---跳過(row, col)位置---*/

掃雷小遊戲原始碼

小專案 2048小遊戲

很久之前,在學完c語言的時候,老師留下了乙個作業,問大家有沒有玩過2048,讓自己做乙個2048的小專案,然後就各種查閱資料,自己做了乙個小小的2048小遊戲,用w s a d實現上下左右的移動,下面是 實現部分。實現 include include include includeint code ...

小專案 打字小遊戲

include include include include include define n 20 static void randomstring char str,int len static char mygetchar static void gamerunning time t sta...

小遊戲 掃雷

c語言實現的乙個簡單的掃雷遊戲 介面簡單,功能 首次踩雷的,會換雷。掃雷有九宮格擴撒 環境 vs2015 如下 game.h pragma once ifndef game h define game h define rows 11 define cols 11 define num 9 incl...