| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2122 人关注过本帖
标题:【求助】c++海战游戏
只看楼主 加入收藏
tcxk
Rank: 2
等 级:禁止访问
帖 子:50
专家分:20
注 册:2020-3-26
结帖率:66.67%
收藏
已结贴  问题点数:20 回复次数:4 
【求助】c++海战游戏
海战游戏
Karl和Bob在玩一种海战游戏:在一个8*8的方格棋盘中,有一些战船(属于Karl或Bob),每名玩家在自己的回合,可以让己方战船向四个正方向(东、南、西、北)发射炮弹(每个方向最多发射一枚炮弹),炮弹会摧毁飞行方向上第一个碰到的战船(无论敌我),战船被摧毁后会在该位置留下一个残骸并会阻挡其他炮弹通过。
现在轮到Karl的回合,Karl想知道在不摧毁己方战船的条件下,该回合最多能摧毁多少敌方战船。

输入格式

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

输出格式

一个整数,表示结果
搜索更多相关主题的帖子: c++ 表示 数字 游戏 格子 
2020-03-31 18:57
tcxk
Rank: 2
等 级:禁止访问
帖 子:50
专家分:20
注 册:2020-3-26
收藏
得分:0 
大佬们帮帮我吧

Better coding, better life💎
2020-03-31 19:00
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:18
lin5161678
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:45
帖 子:1136
专家分:3729
注 册:2011-12-3
收藏
得分:20 
                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;
                    }
                }
炮弹会摧毁飞行方向上第一个碰到的战船
==是比较
                        m[k][j]==3;
应该是 =
收到的鲜花
  • return_02020-03-31 21:36 送鲜花  1朵  

https://zh.
2020-03-31 20:31
tcxk
Rank: 2
等 级:禁止访问
帖 子:50
专家分:20
注 册:2020-3-26
收藏
得分:0 
谢谢

Better coding, better life💎
2020-03-31 21:35
快速回复:【求助】c++海战游戏
数据加载中...
 
   



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

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