Xiangqi UVa1589

在ACM比赛中,解决Xiangqi UVa1589问题时,初版代码忽略了红将的特殊情况,将其错误地当作红车处理。经过修正,考虑了所有棋局状态,但初期的重定向错误导致了延迟的AC通过。
摘要由CSDN通过智能技术生成
Time: 3 hrs 20 mins
一个把我搞得快崩溃的题,一开始没有把问题考虑好,采用边输入边检查攻击范围,没有考虑到后面的棋子。
第二个问题,黑将可以吃子的问题,采用的解决方法是车和炮的攻击范围,从一开始会被棋子打断(该位置不在范围),到包括该位置,即假如黑将吃了这个棋子,那么就进入攻击范围。

第三,忘记把红将也设置为红车进行判定,这才把所有情况考虑周到,但是又忘记删掉重定向,最后才AC。

#include <iostream>
#include <cstring>
using namespace std;
int N, bx, by;
int map[20][20] = { 0 };
int chess[20][20] = { 0 };
void cAtk(int x, int y)
{
    int flag = 0;
    for (int i = x + 1; i < 11; i++)
    {
        if (chess[i][y] < 2 && flag)
            map[i][y] = 1;
        if (chess[i][y] > 1 && flag)
        {
            map[i][y] = 1; break;
        }
        else if (chess[i][y] > 1)
            flag = 1;
    }
    flag = 0;
    for (int i = x - 1; i > 0; i--)
    {
        if (chess[i][y] < 2 && flag)
     
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值