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