zoukankan      html  css  js  c++  java
  • 爬格子呀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;
    }
  • 相关阅读:
    LDA-math-MCMC 和 Gibbs Sampling
    本地blast详解
    【shell命令】拆分、合并、排序、比较文件
    数学中竟然还有这样的定理!
    数学之美番外篇:平凡而又神奇的贝叶斯方法
    glean工具和maker工具
    Perl语言中的ig
    批量替换某个目录下所有文件里的内容
    RepeatMasker使用
    Hi-C文库制备的连接酶连接效果
  • 原文地址:https://www.cnblogs.com/romaLzhih/p/9489872.html
Copyright © 2011-2022 走看看