标题:【题目求助】c++海战游戏,大佬帮帮忙吧
只看楼主
tcxk
Rank: 2
等 级:禁止访问
帖 子:50
专家分:20
注 册:2020-3-26
结帖率:66.67%
 问题点数:0 回复次数:2 
【题目求助】c++海战游戏,大佬帮帮忙吧
海战游戏
Karl和Bob在玩一种海战游戏:在一个8*8的方格棋盘中,有一些战船(属于Karl或Bob),每名玩家在自己的回合,可以让己方战船向四个正方向(东、南、西、北)发射炮弹(每个方向最多发射一枚炮弹),炮弹会摧毁飞行方向上第一个碰到的战船(无论敌我),战船被摧毁后会在该位置留下一个残骸并会阻挡其他炮弹通过。
现在轮到Karl的回合,Karl想知道在不摧毁己方战船的条件下,该回合最多能摧毁多少敌方战船。

输入格式

一共8行,每行8个数字分别表示对应格子上的情况。
当数字为0时,表示该格子没有棋子,当数字为1时,表示该格子上有Karl的战船,当数字为2时,表示该格子上有Bob的战船

输出格式

一个整数,表示结果

[此贴子已经被作者于2020-3-31 19:54编辑过]

搜索更多相关主题的帖子: 游戏 数字 表示 c++ 格子 数字 游戏 表示 格子 c++ 
2020-03-31 19:39
tcxk
Rank: 2
等 级:禁止访问
帖 子:50
专家分:20
注 册:2020-3-26
得分:0 
求助了
我的代码:
程序代码:
#include<iostream>
using namespace std;
int main(){
    int m[8][8];
    int cnt=0;
    for(int i=0;i<8;i++){
        for(int j=0;j<8;j++){
            cin>>m[i][j];
        }
    }
    for(int i=0;i<8;i++){
        for(int j=0;j<8;j++){
            if(m[i][j]==1){
                for(int k=i;k<8;k++){
                    if(m[k][j]==1){
                        break;
                    }
                    if(m[k][j]==2){
                        m[k][j]==3;
                        cnt++;
                    }
                    if(m[k][j]==3){
                        break;
                    }
                }
                for(int k=i;k>0;k--){
                    if(m[k][j]==1){
                        break;
                    }
                    if(m[k][j]==2){
                        m[k][j]==3;
                        cnt++;
                    }
                    if(m[k][j]==3){
                        break;
                    }
                }
                for(int k=j;k<8;k++){
                    if(m[k][j]==1){
                        break;
                    }
                    if(m[i][k]==2){
                        m[i][k]==3;
                        cnt++;
                    }
                    if(m[i][k]==3){
                        break;
                    }
                }
                for(int k=j;k>8;k--){
                    if(m[k][j]==1){
                        break;
                    }
                    if(m[i][k]==2){
                        m[i][k]==3;
                        cnt++;
                    }
                    if(m[i][k]==3){
                        break;
                    }
                }
            }
        }
    }
    cout<<cnt;
    return 0;
}

Better coding, better life💎
2020-03-31 19:50
tcxk
Rank: 2
等 级:禁止访问
帖 子:50
专家分:20
注 册:2020-3-26
得分:0 

Better coding, better life💎
2020-03-31 20:01



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-500768-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016998 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved