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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

信息学奥赛C++语言: 扫雷游戏

發(fā)布時間:2025/3/17 c/c++ 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 信息学奥赛C++语言: 扫雷游戏 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

【題目描述】
掃雷游戲是一款十分經(jīng)典的單機(jī)小游戲。在 n 行 m 列的雷區(qū)中有一些格子含有地雷
(稱之為地雷格),其他格子不含地雷(稱之為非地雷格)。玩家翻開一個非地雷格時,該格將會出現(xiàn)一個數(shù)字——提示周圍格子中有多少個是地雷格。游戲的目標(biāo)是在不翻出任何地雷格的條件下,找出所有的非地雷格。
現(xiàn)在給出n行m列的雷區(qū)中的地雷分布,要求計算出每個非地雷格周圍的地雷格數(shù)。
注:一個格子的周圍格子包括其上、下、左、右、左上、右上、左下、右下八個方向上與之直接相鄰的格子。

【輸入】
輸入文件第一行是用一個空格隔開的兩個整數(shù)n和m,分別表示雷區(qū)的行數(shù)和列數(shù)。
接下來 n 行,每行 m 個字符,描述了雷區(qū)中的地雷分布情況。字符’*’表示相應(yīng)格子是地雷格,字符’?’表示相應(yīng)格子是非地雷格。相鄰字符之間無分隔符。

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

【輸入樣例】
樣例1:
3 3
??
???
??
樣例2:
2 3
?*?
*??

【輸出樣例】
樣例1:
10
221
11
樣例2:
2*1
*21

代碼

#include<bits/stdc++.h> using namespace std; int dx[8]={-1,-1,0,1,1,1,0,-1},dy[8]={0,1,1,1,0,-1,-1,-1}; int s[101][101]={0},n,m,ni,nj,a; char x[101][101]; int main() {cin>>n>>m;for(int i=0;i<n;i++){for(int j=0;j<m;j++) x[i][j]=getchar();getchar();}for(int i=0;i<n;i++)for(int j=0;j<m;j++)if(x[i][j]=='?')for(int k=0;k<8;k++){ni=i+dx[k];nj=j+dy[k];if(ni>=0&&ni<n&&nj>=0&&nj<m&&x[ni][nj]=='*') s[i][j]++;}for(int i=0;i<n;i++){for(int j=0;j<m;j++)if(x[i][j]=='*') putchar('*');else putchar(s[i][j]+48);putchar('\n');}return 0; }

總結(jié)

以上是生活随笔為你收集整理的信息学奥赛C++语言: 扫雷游戏的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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