日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) >

扫雷游戏(模拟算法)

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

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

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

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

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

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

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

輸入 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é)

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

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