UVA 1589 象棋

博主在解决UVA 1589象棋问题时遇到困难,起初本地测试通过,但提交后无法通过。经过尝试,将%c+getchar()替换为%s后,最终实现AC,感叹题目设置的难度。
摘要由CSDN通过智能技术生成

这道题简直是太坑了。一开始在本机上测试怎么都对,但是提交之后无论如何都过不了,简直是要绝望。到最后尝试了一下把%c+getchar()换成了%s之后,终于成功AC。太坑了……………………

#include<cstdio>
#include<cstring>
using namespace std;

int boom[11][11],p[11][11]; //boom存的是红方棋子能够吃到的位置,p存的是红方棋子在棋盘上的位置
int n,pa,pb;//n为红方的棋子个数,pa,pb表示黑将在棋盘上的位置
FILE *out;

struct a
{
    char ch; //棋子
    int pos[3]; //棋子所在的位置
}chess[10];

int check()
{

    int i,j,k;

    for(i = 1;i <= n;i++)
    {
        if(chess[i].ch == 'R' || chess[i].ch == 'G')
        {
            for(j = chess[i].pos[1]+1;j <= 10;j++)
            {
                boom[j][chess[i].pos[2]] = 1;
                if(p[j][chess[i].pos[2]] == 1)
                {
                    break;
                }
            }
            for(j = chess[i].pos[1]-1;j >= 1;j--)
            {
                boom[j][chess[i].pos[2]] = 1;
                if(p[j][chess[i].pos[2]] == 1)
                {
                    break;
                }
            }
            for(j = chess[i].pos[2]+1;j <= 10;j++)
            {
                boom[chess[i].pos[1]][j] = 1;
                if(p[chess[i].pos[1]][j] == 1)
                {
                    break;
                }
            }
            for(j = chess[i].pos[2]-1;j >= 1;j--)
            {
                boom[chess[i].pos[1]][j] = 1;
                if(p[chess[i].pos[1]][j] == 1)
               
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值