掃雷的實現是使用兩個陣列,乙個陣列是用來顯示的地圖陣列,而另乙個陣列是雷陣,每當玩家輸入座標後會根據雷陣判斷該位置是否有雷,如果沒有會計算出該位置周圍地雷的數量並返回列印出來。不過值得一提的是,地圖的初始化要多設計出乙個邊框,這個邊框不需要列印,但是在計算周圍地雷數量的時候卻會格外方便。
#define _crt_secure_no_warnings
#define max_row 10
#define max_col 10
#define mine_num 10
#include #include #include /*!
* \專案名 掃雷
* \日期 2018/11/19 23:19
* * \作者 misaki
* **** [email protected]
* * 檔案描述: 10 * 10掃雷遊戲初步實現
**//*選單
返回:使用者輸入
*/int menu()
/*初始化地圖
引數:兩張地圖
*/void initmap (char show_map[max_row + 2][max_col + 2], char mine_map[max_row + 2][max_col + 2])
} //設定隨機雷陣
for (int i = 0; i < mine_num; ) }
}/*列印地圖
引數:地圖
*/void printmap(char map[max_row + 2][max_col + 2])
printf("\n");
printf(" ");
for (int i = 1; i < max_row + 1; i++)
printf("\n");
for (int i = 1; i < max_row + 1; i++)
printf("\n");
} printf("\n");}/*
判斷周圍有幾個雷
引數:地雷地圖,使用者選擇的座標
返回:雷的個數
*/int minenum(char mine_map[max_row + 2][max_col + 2], int row, int col)
/*更新遊戲顯示地圖
引數:兩張地圖和使用者選擇的座標
*/void updatemap(char show_map[max_row + 2][max_col + 2], char mine_map[max_row + 2][max_col + 2], int row, int col)
if (row - 1 >= 1 && col - 1 >= 1)
if (row - 1 >= 1 && col >= 1)
if (row - 1 >= 1 && col + 1 <= 10)
if (row >= 1 && col + 1 <= 10)
if (row + 1 <= 10 && col + 1 <= 10)
if (row + 1 <= 10 && col >= 1)
if (row + 1 <= 10 && col - 1 >= 1)
}}int lostminenum(char show_map[max_row + 2][max_col + 2])
} }return count;
}/*遊戲主體*/
void game()
else
}//判斷該處是否有雷,有雷直接gg跳出迴圈
if (mine_map[row][col] == '1')
//沒掃完繼續,計算該處附近有及個雷,填入顯示地圖中如果沒有雷,繼續計算周邊一圈全部顯示到地圖中
updatemap(show_map, mine_map, row, col);
//沒雷判斷是否是最後乙個,全部掃完遊戲結束跳出迴圈
if (lostminenum(show_map) <= 10)
}//遊戲結束列印地雷地圖
system("pause");
}void gameexplain()
int main()
if (choose == 2)
else
}system("pause");
return 0;
}
掃雷的實現十分簡單,但是在這個版本中我並沒有做出當周圍地雷數為0時會一直清理直到周圍全部有地雷為止的演算法,這個會在後續進行實現。 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...