1.掃雷遊戲——————c初學者的簡單版本
實現: ①難度選擇,不同的雷數的計算方法產生不同的難度;
②第一次踩到雷不會跳出;
③如果座標周圍沒有雷的時候,擴充套件座標。
源**:
game.h
//*//*檔名稱:排雷遊戲
//*//*當前版本:1.1
//*完成日期:2023年4月23日
//*//*取代版本:1.0
//*#ifndef _game_h_
#define _game_h_
#include #include #include enum option
;#define row 10
#define col 10
#define rows row+2
#define cols col+2
extern int nume ;//置0和不置0有區別
extern int spacenumber;
void inte***ce();
int choose(int a);
void initboard(char board[rows][cols], int rows, int cols, char set);
void printboard(char board[rows][cols], int rows, int cols);
void setmine(char board[rows][cols],int row,int col);
void findmine(char mine[rows][cols], char show[rows][cols], int row, int col);
int getminecount(char mine[rows][cols], int x, int y);
void expand(char mine[rows][cols], char show[rows][cols], int row, int col, int x, int y);
#endif//_game_h_
game.c
#include "game.h"
int nume;//全域性變數定義
int spacenumber;//全域性變數定義
//初始化陣列
void initboard(char board[rows][cols], int rows, int cols, char set) }}
//列印陣列
void printboard(char board[rows][cols], int row, int col)
printf("\n");
for (i = 0; i < row; i++)
printf("\n");
} printf("\n");
}//設定炸彈
void setmine(char board[rows][cols]) }}
//返回玩家輸入座標周圍的雷數
static int getminecount(char mine[rows][cols], int x, int y)
//利用函式遞迴呼叫實現的擴充套件函式
void expand(char mine[rows][cols], char show[rows][cols], int row, int col, int x, int y)
if (show[x][y + 1] == '*')
if (show[x - 1][y] == '*')
if (show[x + 1][y] == '*')
}else }
//找雷函式
void findmine(char mine[rows][cols], char show[rows][cols], int row, int col)
else
}else
if (0 == (x >= 1 && x <= row && y >= 1 && y <= col))
}} if (row*col-sum == nume)
}
find.c
#include "game.h"
int nume;//全域性變數定義
int spacenumber;//全域性變數定義
//選單函式
void menu()
//選擇介面
void inte***ce()
//難度選擇,返回不同的雷的數目
int choose(int a) }}
//遊戲函式
void game()
; char show[rows][cols] = ;
initboard(mine, row, col, '0');//布雷的函式初始化為『0』
initboard(show, rows, cols, '*');//顯示的函式初始化為『0』
//printboard(mine, row, col);
printboard(show, row, col);
setmine(mine,row,col);//生成隨機位置的雷
//printboard(mine, row, col);
findmine(mine, show, row, col);//找雷函式
}//執行函式
void test()
case 2:
printf("您將退出遊戲!\n");
break;
default:
printf("您輸錯了,請再輸入!\n");
break;
} } while (input);
}//主函式
int main()
注:**在vs2013上已執行,無誤。
已知bug:(我也想改,但不會,所以會繼續以優化-_+)
①:當遊戲是 9*9 時,如果我把雷數設定成80個時,編譯成功,但執行會出現問題
發現的問題:
①:全域性變數在標頭檔案中初始化為0和不為0效果不一樣,待解決,
陣列的應用 掃雷
1.在game.h中進行巨集定義,標頭檔案引入以及函式宣告 2.在main.c中實現主函式 3.在game.c中實現功能函式 除了基本的功能外,還實現以下幾個功能 1.第一步不會炸 2.點到周圍沒有雷的區域會自動展開 3.可以做標記 4.顯示當前雷數 5.顯示已用時間 待拓展的功能 選關 需要定義兩...
二維陣列應用 掃雷
遊戲簡介 電腦隨機設定10個雷,使用者輸入座標,若座標下是雷則結束遊戲,不是則該位置顯示周圍的雷數。game.h ifndef game h define game h include 設定螢幕顯示的雷盤的大小 define row 9 define col 9 設定實際雷盤的大小 判斷雷數是看使用...
C語言的簡單應用 陣列實現多項式
這是乙個基於陣列實現的乙個簡單多項式結構 主要的缺點就是會浪費很大記憶體空間 include include include define max 100 typedef struct node polymariol 把多項式初始化為0 void zero polymariol poly poly ...