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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

扫雷游戏(模拟算法)

發(fā)布時間:2024/1/8 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 扫雷游戏(模拟算法) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

題目描述
掃雷游戲是一款十分經(jīng)典的單機小游戲。在nn行mm列的雷區(qū)中有一些格子含有地雷(稱之為地雷格),其他格子不含地雷(稱之為非地雷格)。玩家翻開一個非地雷格時,該格將會出現(xiàn)一個數(shù)字——提示周圍格子中有多少個是地雷格。游戲的目標是在不翻出任何地雷格的條件下,找出所有的非地雷格。

現(xiàn)在給出n行m列的雷區(qū)中的地雷分布,要求計算出每個非地雷格周圍的地雷格數(shù)。

注:一個格子的周圍格子包括其上、下、左、右、左上、右上、左下、右下八個方向上與之直接相鄰的格子。

輸入格式
第一行是用一個空格隔開的兩個整數(shù)n和m,分別表示雷區(qū)的行數(shù)和列數(shù)。

接下來n行,每行m個字符,描述了雷區(qū)中的地雷分布情況。字符’*’表示相應(yīng)格子是地雷格,字符’?’表示相應(yīng)格子是非地雷格。相鄰字符之間無分隔符。

輸出格式
輸出文件包含n行,每行m個字符,描述整個雷區(qū)。用’*’表示地雷格,用周圍的地雷個數(shù)表示非地雷格。相鄰字符之間無分隔符。

輸入 3 3 *?? ??? ?*? 輸出 *10 221 1*1輸入 2 3 ?*? *?? 輸出 2*1 *21 #include<bits/stdc++.h> using namespace std; int dx[8]={0,0,-1,-1,-1,1,1,1}; int dy[8]={1,-1,1,-1,0,-1,1,0};int main() {int n,m,tx,ty;cin>>n>>m; char chess[n][m];int a[n][m];memset(a,0,sizeof(a));for(int i=0;i<n;i++)for(int j=0;j<m;j++)cin>>chess[i][j];for(int i=0;i<n;i++){for(int j=0;j<m;j++){ if(chess[i][j]=='*')a[i][j]=-1;elsefor(int k=0;k<8;k++){ tx=i; ty=j;tx+=dx[k];ty+=dy[k];if(chess[tx][ty]=='*'&&tx>=0&&tx<n&&ty>=0&&ty<m)a[i][j]++; }}}for(int i=0;i<n;i++){for(int j=0;j<m;j++){if(a[i][j]==-1)cout<<"*";elsecout<<a[i][j];}cout<<endl;}return 0; }

總結(jié)

以上是生活随笔為你收集整理的扫雷游戏(模拟算法)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。