问题标题: 酷町堂:1425

0
0
已解决
吕梓瑜
吕梓瑜
初级天翼
初级天翼

1425扫雷游戏咋写啊,我卡住惹

卡住的代码:

#include<bits/stdc++.h>
#include<algorithm>
#include<iostream>
#include<iomanip>
#include<cstring>
#include<string>
#include<cstdio>
#include<cmath>
using namespace std;
char a[110][110],dir[8][2]={{-1,-1},{-1,0},{-1,1},{0,-1},{0,1},{1,-1},{1,0},{1,1}};
int main()
{
	//freopen(".in","r",stdin);
	//freopen(".out","w",stdout);
	ios::sync_with_stdio(false);
	int n,m;
	cin>>n>>m;
	for(int i=1;i<=n;i++){
		for(int j=1;j<=m;j++){
			cin>>a[i][j];
		}
	}
	for(int i=1;i<=n;i++){
		for(int j=1;j<=m;j++){
			if(a[i][j]=='?'){
				for(int k=0;k<8;k++){
					i+dir[k][0],j+dir[k][1];
				}
			}
		}
	}
	for(int i=1;i<=n;i++){
		for(int j=1;j<=m;j++){
			cout<<a[i][j]<<" ";
		}
		cout<<endl;
	}
	//fclose(stdin);
	//fclose(stdout);
    return 0;
}

有谁能告诉我咋写啊!(不是要完整代码!)

能否要求各位大佬这么回答呢:

就是发伪代码~

拜托了~

@各位大佬~(李显晨同学,我的艾特出问题了,没办法艾特你!不是不艾特你!)

吕梓瑜在2021-10-23 16:57:07追加了内容

@李显晨 


0
已采纳
李显晨
李显晨
中级启示者
中级启示者
主函数:
cin>>n>>m;
    循环(int i=1;i<=n;i++){
        循环(int j=1;j<=m;j++){
            cin>>s[i][j];
        }
    }
    循环(int i=1;i<=n;i++){
        循环(int j=1;j<=m;j++){
            if(s[i][j]=='*') cout<<s[i][j];
            if(s[i][j]=='?'){
                if(s[i-1][j-1]=='*') cnt++;
                if(s[i-1][j]=='*') cnt++;   
                if(s[i-1][j+1]=='*') cnt++;
                if(s[i][j-1]=='*') cnt++;
                if(s[i][j+1]=='*') cnt++;
                if(s[i+1][j-1]=='*') cnt++;
                if(s[i+1][j]=='*') cnt++;
                if(s[i+1][j+1]=='*') cnt++;
                cout<<cnt;
                cnt=0;
            }
        }
        cout<<endl;
    }
全局:
char s[101][101];
int cnt,n,m;

 

0
李锦昊
李锦昊
中级天翼
中级天翼

**办法

for(int i=2;i<=n+1;i++){
        for(int j=2;j<=m+1;j++){
            if(a[i][j]=='?'){
                cnt=0;
                if(a[i-1][j-1]=='*'){
                    cnt++; 
                }
                if(a[i-1][j]=='*'){
                    cnt++; 
                } 
                if(a[i-1][j+1]=='*'){
                    cnt++; 
                }
                if(a[i][j-1]=='*'){
                    cnt++; 
                }
                if(a[i+1][j-1]=='*'){
                    cnt++; 
                }
                if(a[i+1][j]=='*'){
                    cnt++; 
                }
                if(a[i+1][j+1]=='*'){
                    cnt++; 
                }
                if(a[i][j+1]=='*'){
                    cnt++; 
                }
                cout<<cnt;
            }
            else{
                cout<<a[i][j]; 
            } 
        }
        cout<<endl;
    }

 

0
武奕楷
武奕楷
新手天翼
新手天翼
if(a[i+1][j]=='*') cnt++;
if(a[i-1][j]=='*') cnt++;
if(a[i][j+1]=='*') cnt++;
if(a[i][j-1]=='*') cnt++;
if(a[i+1][j+1]=='*') cnt++;
if(a[i+1][j-1]=='*') cnt++;
if(a[i-1][j+1]=='*') cnt++;
if(a[i-1][j-1]=='*') cnt++;

判断部分

0
张程阳
张程阳
新手天翼
新手天翼

for(int i=1;i<=n;i++){ for(int j=1;j<=m;j++){ cin>>a[i][j]; if(a[i][j]=='*') f[i][j]=1; } } for(int i=1;i<=n;i++){ for(int j=1;j<=m;j++){ if(f[i][j]==1) cout<<"*"; else cout<<f[i+1][j+1]+f[i+1][j-1]+f[i-1][j+1]+f[i-1][j-1]+f[i-1][j]+f[i+1][j]+f[i][j+1]+f[i][j-1]+f[i][j]; } cout<<endl; }//核心

0
0
0
我要回答