做乙個掃雷的遊戲,首先分析一下掃雷需要實現的功能:
1.選擇乙個位置,如果該位置是雷則結束遊戲,並顯示所有雷的位置。如果不是雷則顯示該位置周圍雷的數量。
2.如果周圍沒有雷,則該位置顯示空,並且周圍如果也為空則一併展開。
3.第一次選擇時必定不是雷
4.當盤上剩餘的位置只有雷了,則遊戲也結束,並且玩家勝利。
然後可以用兩個二維陣列,乙個陣列儲存雷的排布,乙個陣列顯示遊戲介面,假設是10*10的介面的話,陣列大小應該為12*12,周圍一圈全為0,以便雷布在邊界時,周圍的數字更好的計算。
標頭檔案部分:
#ifndef _game_h_
#define _game_h_
#include #include #include #define row 11
#define col 11
#define rows row+1
#define cols col+1
#define easy 10
int game(); //遊戲實現
void fill_mine(char arr[rows][cols]); //隨機布雷
void show_mine(char show[rows][cols]); //展示該陣列
void clean_show(char show[rows][cols]); //初始化該陣列
void is_mine(char arr[rows][cols], char show[rows][cols], int x, int y); //判斷該位置周圍雷的個數,沒有雷則展開
void copy(char arr[rows][cols], char show[rows][cols]); //將雷的位置顯示在顯示陣列裡
#endif
主選單部分:
#define _crt_secure_no_warnings
#include #include "game.h"
void meau()
int main()
else if (1 == a)
}printf("謝謝使用!\n");
遊戲功能實現部分:
各函式定義:
#define _crt_secure_no_warnings
#include "game.h"
void fill_mine(char arr[rows][cols]) //隨機布雷
} while (ret <= easy);
}void show_mine(char show[rows][cols])
else if (0 == j)
else
}printf("\n"); }}
void clean_show(char show[rows][cols]) }}
void copy(char arr[rows][cols], char show[rows][cols])
} }}void is_mine(char arr[rows][cols], char show[rows][cols], int x, int y)
else
if (x > 0 && show[x - 1][y] == '0')
if (y < col && show[x][y + 1] == '0')
if (x < row && show[x + 1][y] == '0')
} }}
int win(char show[rows][cols])
} }if (10 == cout)
else return 0;
}
執行結果:
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...
C語言 掃雷
game.h ifndef game h define game h define crt secure no warnings 1 include include include include define easy count 10 define row 9 define col 9 defi...