陣列的應用 掃雷

2021-08-13 06:59:17 字數 2463 閱讀 9033

1.在game.h中進行巨集定義,標頭檔案引入以及函式宣告

2.在main.c中實現主函式

3.在game.c中實現功能函式

除了基本的功能外,還實現以下幾個功能:

1.第一步不會炸

2.點到周圍沒有雷的區域會自動展開

3.可以做標記

4.顯示當前雷數

5.顯示已用時間

待拓展的功能:選關

需要定義兩個二維陣列,乙個作為記錄雷的位置,乙個作為展示介面,除此之外,實際定義的陣列應比展示出來的介面大一圈,這樣便於統計雷數

void setmine(char board[rows][cols], int row, int col)

}

在棋盤內隨機選取10個位置埋雷。

用到了rand()函式生成偽隨機數,使用rand函式前應先呼叫srand()喚醒,並用時間做引數。

int getminecount(char board[rows][cols],location loc)

}return

count;

}

int sweepmine(char show[rows][cols],char mine[rows][cols], int rows, int cols, location loc,int *pfirst)

//如果是第一步

if ((*pfirst) == 1) while (mine[loc.x][loc.y] == '1');

}if (mine[loc.x][loc.y] == '1')

else

return

1;}

void expand(char show[rows][cols], char mine[rows][cols],int row, int col, location loc)

; if (show[loc.x][loc.y] != '*')

return;

if (getminecount(mine, loc) == 0)

else show[i][j] = ret + '0';}}

}}

如果點到雷數是0的位置,就遞迴,展開到座標雷數不是0(第乙個不是0的位置也顯示出來)

第一步下的是(5,5),顯示雷數1,然後第二步是(9,9),雷數是0自動展開,直到雷數不是0

int label(char show[rows][cols], int

rows, int cols, location loc,int *pflag)

if (show[loc.x][loc.y] == '*')

else if (show[loc.x][loc.y] == 'x')

else

printboard(show, rows, cols);

return 1;

}

如果有標記就取消,如果沒有標記就做標記

不知道大家是怎麼做的,我設定的是做乙個標記雷數就減一

這個用clock()函式就能實現,具體是,定義三個變數

clock_t start, finish;

double time;

在剛剛進入遊戲時,

start = clock();

clock函式返回開啟這個程序到呼叫clock()函式的cpu時鐘單元

結束時間也是這樣,

finish = clock();

time = (double)(finish - start) / clocks_per_sec;//巨集表示一秒鐘有多少時鐘單元

每次展開乙個座標就顯示一次雷數和時間

printf("\n 當前雷數:%d 已用時:%.0f s\n",easy_count-flag,time);

當玩家選中有雷座標時就輸了

判斷獲勝會麻煩一點

//檢視當前顯示格仔數目

int checkmine(char show[rows][cols], char mine[rows][cols], int rows, int cols)

}return count;

}

函式名字起的比較糟糕,功能是返回當前顯示出來格仔的數目

當所有不是雷的格仔都顯示出來時,玩家就獲勝了

剛剛讓舍友玩了一局,她說介面太花了。。。這個是最需要改進的,目前我也沒辦法。。。

二維陣列應用 掃雷

遊戲簡介 電腦隨機設定10個雷,使用者輸入座標,若座標下是雷則結束遊戲,不是則該位置顯示周圍的雷數。game.h ifndef game h define game h include 設定螢幕顯示的雷盤的大小 define row 9 define col 9 設定實際雷盤的大小 判斷雷數是看使用...

C語言陣列應用的簡單應用 掃雷遊戲

1.掃雷遊戲 c初學者的簡單版本 實現 難度選擇,不同的雷數的計算方法產生不同的難度 第一次踩到雷不會跳出 如果座標周圍沒有雷的時候,擴充套件座標。源 game.h 檔名稱 排雷遊戲 當前版本 1.1 完成日期 2018年4月23日 取代版本 1.0 ifndef game h define gam...

陣列的應用

設5 個同學修了高等數學 普通物理 程式語言並取得了成績,現計算三門課總分 平均分,每門課的總分 平均分,每個同學的總分 平均分 include int main void int physics int programming int ttscore,scoret 5 tscore 3 float...