goc小游戏

大家好,我是@黑客小羊,今天给大家几个游戏代码

1.象棋

int a[114][514],b,c,d,g;
int cc=0;
int check(){
    p.moveTo(-420,-280);
    string ob;
    int num;
    cin>>ob>>num;
    if(ob=="cg")cc=num;
}
int abs(int v){
    if(v<0)v=v-v-v;
    return v;
}
int f(int v){
    return 0+(v>=8&&v<=14)*1;
}
string st(int k){
    if(k==1 )return "将";
    if(k==2 )return "仕";
    if(k==3 )return "象";
    if(k==4 )return "馬";
    if(k==5 )return "車";
    if(k==6 )return "砲";
    if(k==7 )return "卒";
    if(k==8 )return "帅";
    if(k==9 )return "士";
    if(k==10)return "相";
    if(k==11)return "马";
    if(k==12)return "车";
    if(k==13)return "炮";
    if(k==14)return "兵";
}
int can(int q,int w,int e,int r){
    if(cc==1)return 1;
    int k=a[q][w];string tr=st(a[q][w]);
    if(f(k)!=g)return 0;
    if((f(a[q][w])==f(a[e][r]))&&(a[e][r]!=0))return 0;
    if(tr=="車"||tr=="车"){
        if(q==e){
            if(w>r)
                for(int i=w-1;i>r;i--)if(a[q][i]!=0)return 0;
            if(w<r) 
                for(int i=w+1;i<r;i++)if(a[q][i]!=0)return 0;
        }
        else if(w==r){
            if(q>e)
                for(int i=q-1;i>e;i--)if(a[i][w]!=0)return 0;
            if(q<e) 
                for(int i=q+1;i<e;i++)if(a[i][w]!=0)return 0;
        }
        else if(q!=e&&w!=r)return 0;
    }
    if(tr=="馬"||tr=="马"){
        if(a[q-1][w]==0){
            if(q-2==e&&w+1==r)return 1;
            if(q-2==e&&w-1==r)return 1;
        }
        if(a[q+1][w]==0){
            if(q+2==e&&w+1==r)return 1;
            if(q+2==e&&w-1==r)return 1;
        }
        if(a[q][w-1]==0){
            if(q+1==e&&w-2==r)return 1;
            if(q-1==e&&w-2==r)return 1;
        }
        if(a[q][w+1]==0){
            if(q-1==e&&w+2==r)return 1;
            if(q+1==e&&w+2==r)return 1;
        }
        return 0;
    }
    if(tr=="象"||tr=="相"){
        if(f(k)==0){
            if(q+2==e&&w+2==r&&a[q+1][w+1]==0)return 0+(r<=5);
            if(q+2==e&&w-2==r&&a[q+1][w-1]==0)return 0+(r<=5);
            if(q-2==e&&w+2==r&&a[q-1][w+1]==0)return 0+(r<=5);
            if(q-2==

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值