日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

扫雷地图设置

發布時間:2024/1/1 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 扫雷地图设置 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

?題目分析

代碼①

代碼②?

寫碼不易,大家多多支持!


共同進步,兼顧遠方!!!

?題目分析

1.第一個難點在于如何隨機生成10個雷,我們想到了rand();然后以時間為隨機種子,如此該問題就得到了解決

2.第二個就是要解決以雷為中心的九宮格的問題,第一種方法就是直接遍歷這個九宮格,然后給二維坐標加上條件[0,9]第二種就是生成12*12的二維地圖,不用最外面的一圈,此方法更簡單;至于最暴力的方法這里就不和大家討論了

代碼①

#include<stdio.h> #include<time.h> int main() {int map[10][10] = { 0 };srand(time(NULL)); //生成隨機種子//隨機生成10個雷for (int i = 1; i < 11;) {int r = rand() % 10;int c = rand() % 10;//排除重復if (map[r][c] == 0) {map[r][c] = -1;//確保生成10個雷i++; //以雷為中心的九宮格for (int j = r - 1; j <= r + 1; j++){for (int k = c - 1; k <= c + 1; k++){//格子沒有越界而且不是雷if (j >= 0 && j < 10 && k >= 0 && k < 10&&map[j][k]!= -1){map[j][k] += 1;}}}}}//輸出地圖for (int i = 0; i < 10; i++){for (int j = 0; j < 10; j++) {printf("%3d", map[i][j]);}printf("\n");}return 0; }

代碼②?

#include<stdio.h> #include<time.h> int main() {int map[12][12] = { 0 };srand(time(NULL)); //生成隨機種子//隨機生成10個雷for (int i = 1; i < 11;){int r = rand() % 10 + 1;int c = rand() % 10 + 1;//排除重復if (map[r][c] == 0){map[r][c] = -1;//確保生成10個雷i++;//以雷為中心的九宮格for (int j = r - 1; j <= r + 1; j++){for (int k = c - 1; k <= c + 1; k++){//格子沒有越界而且不是雷if (map[j][k] != -1){map[j][k] += 1;}}}}}//輸出地圖for (int i = 1; i < 11; i++){for (int j = 1; j < 11; j++){printf("%3d", map[i][j]);}printf("\n");}return 0; }

寫碼不易,大家多多支持!

總結

以上是生活随笔為你收集整理的扫雷地图设置的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。