• 爬格子呀4-1


    阉割版
    少了半边车马炮,没考虑马在边角的情况,没考虑吃子的情况
    代码如下:

    #include<stdio.h>
    
    struct xinxi{
        int che1, che2, ma1, ma2, pao1, pao2, bjiang1 = 3, bjiang2 = 3, rjiang1 = 10, rjiang2 = 3;
    };
    
    int che(xinxi wz2){
        if (wz2.che1 == wz2.rjiang1 || wz2.che2 == wz2.rjiang2) 
            return 1;
    }
    
    int ma(xinxi wz2){
        int i, j;
        for (j = 0; j < 2; j++) {
            for (i = 0; i < 2; i++) {
                wz2.ma1 -= 1; wz2.ma2 -= 2;
                if (wz2.ma1+i*2==wz2.rjiang1&&wz2.ma2+j*2==wz2.rjiang2)
                    return 1;
                wz2.ma1 += 2;
                if (wz2.ma1 - i * 2 == wz2.rjiang1&&wz2.ma2 + j * 2 == wz2.rjiang2)
                    return 1;
            }
        }
    }
    
    int pao(xinxi wz2){
        if (wz2.che1 == wz2.pao1 || wz2.che2 == wz2.pao2 || wz2.ma1 == wz2.pao1 || wz2.ma2 == wz2.pao2 || wz2.bjiang1 == wz2.pao1 || wz2.bjiang2 == wz2.pao2)
        {
            if (wz2.pao1 == wz2.rjiang1 || wz2.pao2 == wz2.rjiang2) { return 1; }
        }
        else return 3;
    }
    
    int jiang(xinxi wz2){
        if (wz2.che2 != wz2.bjiang2&&wz2.ma2 != wz2.bjiang2&&wz2.pao2 != wz2.bjiang2&&wz2.bjiang2 == wz2.rjiang2)
            return 1;
    }
    
    int check(xinxi wz2) {
        return che(wz2) && ma(wz2) && che(wz2) && jiang(wz2);
    }
    
    int main() {
        xinxi wz;
        int i, j;
        scanf_s("%d%d%d%d%d%d", &wz.che1, &wz.che2, &wz.ma1, &wz.ma2, &wz.pao1, &wz.pao2);
        scanf_s("%d%d%d%d", &wz.bjiang1, &wz.bjiang2, &wz.rjiang1, &wz.rjiang2);
    
        switch (wz.rjiang2) {
        case 8: wz.rjiang2 += 1; if (check(wz))printf("1");
        case 9: wz.rjiang2 += 1; check(wz); wz.rjiang2 -= 2; if (check(wz))printf("1");
        case 10: wz.rjiang2 -= 1; if (check(wz))printf("1");
        }
        switch (wz.rjiang1) {
        case 3: wz.rjiang1 += 1; if (check(wz))printf("1");
        case 4: wz.rjiang1 += 1; check(wz); wz.rjiang1 -= 2; if (check(wz))printf("1");
        case 5: wz.rjiang1 -= 1; if (check(wz))printf("1");
        }
        return 0;
    }
  • 相关阅读:
    模拟循环单击事件实现layout中间panel全屏
    easyui tree自定义属性用法
    jquery给动态添加的dom元素绑定事件
    基于easyui fom分组插件
    ubuntu adb 安装
    vim状态保存跟恢复
    ubuntu-删除内核
    u盘安装14.04ubuntu系统
    findFocus-获得拥有焦点的控件
    xml中控件调用构造方法
  • 原文地址:https://www.cnblogs.com/romaLzhih/p/9489872.html
Copyright © 2020-2023  润新知