自制c语言象棋,C语言中国象棋

发布时间:2023-01-07

本文目录一览:

  1. 用C语言输出中国象棋棋盘的源代码!!急!急!急!
  2. 急需用c语言写中国象棋的代码,只要红色方布局和走棋
  3. C语言课程设计 国际象棋棋盘

用C语言输出中国象棋棋盘的源代码!!急!急!急!

#include stdio.h
void main()
{
    int r=0;
    int c=0;
    int star_one=10;
    for(r=0;r=star_one*9;r+=2)
    {
        for(c=0;c=star_one*8;c++)
        {
            if((r%star_one==0 || c%star_one==0)c%2==0 (r=star_one*4 || r=star_one*4+star_one) || (r=star_one*4 r=star_one*4+star_one (c==0 || c==star_one*8)))
            {
                printf("%c",'*');
            }
            else
            {
                printf("%c",' ');
            }
        }
        printf("\n");
    }
}

急需用c语言写中国象棋的代码,只要红色方布局和走棋

接上面中国象棋代码:

if( check_turn == 12)     //相的走法规范
    { 
        if((x == check_x y == check_y))
        {
            temp = turn; 
            temp1 = turn1; 
            turn = 'O'; 
            turn1 = 'N'; 
            num--;
            printf("三思而后行\n"); 
            printf("还是你的回合"); 
            Sleep(500);
        }
        else if( x = 15 (abs(y - check_y) == 8 abs(x - check_x) == 4))
        {
            if((x == 22 (y == 11 || y == 27))||(x == 18 ( y == 3 || y == 19 || y == 35)) ||(x == 14 (y == 11|| y ==27)))
            {
                if( map[(x+check_x)/2][(y+check_y)/2] == '+') 
                    check_main1(temp,temp1,turn,turn1,num,if_return,map);
                else 
                {
                    printf("棋子卡住,不可执行"); 
                    Sleep(500); 
                }
            }
            else 
            {
                printf("不合法的下法\n");
                Sleep(500); 
            }
        }
        else 
        {
            printf("不合法的下法\n"); 
            Sleep(500); 
        }
    }
if( check_turn == 13)     //士的走法规范
    { 
        if((x == check_x y == check_y))
        {
            temp = turn; 
            temp1 = turn1; 
            turn = 'O'; 
            turn1 = 'N'; 
            num--;
            printf("三思而后行\n"); 
            printf("还是你的回合"); 
            Sleep(500);
        }
        else if( abs(x - check_x)== 2 abs( y - check_y) == 4 ((x==22 (y == 15 || y == 23)) || ( x == 20 y == 19) || ( x == 18 ( y == 15 || y == 23)))) 
        {
            check_main1(temp,temp1,turn,turn1,num,if_return,map); 
        }
        else 
        { 
            printf("不合法的下法\n"); 
            Sleep(500); 
        } 
    }
if( check_turn == 14)     //将的走法规范
    { 
        if((x == check_x y == check_y))
        {
            temp = turn; 
            temp1 = turn1; 
            turn = 'O'; 
            turn1 = 'N'; 
            num--;
            printf("三思而后行\n"); 
            printf("还是你的回合"); 
            Sleep(500);
        }
        else if( ((abs(x - check_x)== 2 abs( y - check_y) == 0 )|| (abs(x - check_x)== 0 abs( y - check_y) == 4)) x = 18 x = 22 y = 15 y = 23 )
        {
            check_main1(temp,temp1,turn,turn1,num,if_return,map); 
        }
        else 
        { 
            printf("不合法的下法\n"); 
            Sleep(500); 
        } 
    }
if( check_turn == 15)     //炮的走法规范
    { 
        if((x == check_x y == check_y))
        {
            temp = turn; 
            temp1 = turn1; 
            turn = 'O'; 
            turn1 = 'N'; 
            num--;
            printf("三思而后行\n"); 
            printf("还是你的回合"); 
            Sleep(500);
        }
        else if( y == check_y )
        {
            int check_pao = 0;
            if( x check_x)
            {
                for(j = check_x + 2; j= x ;j = j+ 2)
                {
                    if(map[j][y] == '+' );
                    else check_pao++;
                }
                if(check_pao == 1 temp == '+')    // 直线行走但不可吃棋子 
                    check_main1(temp,temp1,turn,turn1,num,if_return,map);
                else if( check_pao == 2 temp != '+')    //跳跃吃棋 
                    check_main1(temp,temp1,turn,turn1,num,if_return,map);
                else 
                { 
                    printf("不合法的下法\n"); 
                    Sleep(500); 
                }
            }
            else 
            {
                for(j = check_x - 2; j= x;j = j - 2)
                {
                    if(map[j][y] == '+' );
                    else { check_pao++;}
                }
                if(check_pao == 1 temp == '+')    //直线行走但不可吃棋子 
                    check_main1(temp,temp1,turn,turn1,num,if_return,map);
                else if( check_pao == 2 temp != '+')    //跳跃吃棋 
                    check_main1(temp,temp1,turn,turn1,num,if_return,map);
                else 
                { 
                    printf("不合法的下法\n"); 
                    Sleep(500); 
                }
            }
        }
        else if( x == check_x )
        {
            int check_pao = 0;
            if( y check_y)
            {
                for(j = check_y + 4; j= y ;j = j+4)
                {
                    if(map[x][j] == '+' );
                    else check_pao++;
                }
                if(check_pao == 1 temp == '+') //直线行走但不可吃棋子 
                    check_main1(temp,temp1,turn,turn1,num,if_return,map);
                else if( check_pao == 2 temp != '+')    //跳跃吃棋 
                    check_main1(temp,temp1,turn,turn1,num,if_return,map);
                else 
                { 
                    printf("不合法的下法\n"); 
                    Sleep(500); 
                }
            }
            else 
            {
                for(j = check_y - 4; j= y;j = j - 4)
                {
                    if(map[x][j] == '+' );
                    else check_pao++;
                }
                if(check_pao == 1 temp == '+')    //直线行走但不可吃棋子 
                    check_main1(temp,temp1,turn,turn1,num,if_return,map);
                else if( check_pao == 2 temp != '+')    //跳跃吃棋 
                    check_main1(temp,temp1,turn,turn1,num,if_return,map);
                else 
                { 
                    printf("不合法的下法\n"); 
                    Sleep(500); 
                }
            }
        }
        else 
        { 
            printf("不合法的下法\n");
            Sleep(500); 
        }
    }
if( check_turn == 16)     //卒的走法规范
    { 
        if ( x = 14)
        {
            if((x == check_x y == check_y))
            {
                temp = turn; 
                temp1 = turn1; 
                turn = 'O'; 
                turn1 = 'N'; 
                num--;
                printf("三思而后行\n"); 
                printf("还是你的回合"); 
                Sleep(500);
            }
            else if( x == check_x - 2 y == check_y) 
                check_main1(temp,temp1,turn,turn1,num,if_return,map);
            else 
            { 
                printf("不合法的下法\n"); 
                Sleep(500); 
            }
        }
        else
        { 
            if((x == check_x y == check_y))
            {
                temp = turn; 
                temp1 = turn1; 
                turn = 'O'; 
                turn1 = 'N'; 
                num--;
                printf("三思而后行\n"); 
                printf("还是你的回合"); 
                Sleep(500);
            }
            else if((x - check_x == 0 abs(y-check_y) ==4) ||( x - check_x == -2 abs(y-check_y) == 0)) 
                check_main1(temp,temp1,turn,turn1,num,if_return,map);
            else 
            { 
                printf("不合法的下法\n"); 
                Sleep(500); 
            } 
        }
    }
}
else
{ 
    if( check_turn == 20)  //车的走法规范 (帅方)
    {
        if((x == check_x y == check_y))
        {
            temp = turn; 
            temp1 = turn1; 
            turn = 'O'; 
            turn1 = 'N'; 
            num--;
            printf("三思而后行\n"); 
            printf("还是你的回合"); 
            Sleep(500);
        }
        else if( y == check_y )
        {
            if( x check_x)
            {
                for(j = check_x + 2; j x;j = j + 2)
                {
                    if(map[j][y] == '+'); 
                    else 
                    { 
                        printf("不合法的下法\n"); 
                        Sleep(500); 
                        break; 
                    }
                }
                if( j = x) 
                    check_main2(temp,temp1,turn,turn1,num,if_return,map);
            }
            if( x check_x)
            {
                for(j = check_x - 2; j x;j = j - 2)
                {
                    if(map[j][y] == '+'); 
                    else 
                    { 
                        printf("不合法的下法\n"); 
                        Sleep(500); 
                        break; 
                    }
                }
                if( j = x) 
                    check_main2(temp,temp1,turn,turn1,num,if_return,map);
            }
        }
        else if( x == check_x )
        {
            if( y check_y)
            {
                for(j = check_y + 4; j y;j = j + 4)
                {
                    if(map[x][j] == '+'); 
                    else 
                    { 
                        printf("不合法的下法\n"); 
                        Sleep(500); 
                        break; 
                    }
                }
                if( j = y) 
                    check_main2(temp,temp1,turn,turn1,num,if_return,map);
            }
            if( y check_y)
            {
                for(j = check_y - 4; j y;j = j - 4)
                {
                    if(map[x][j] == '+'); 
                    else 
                    { 
                        printf("不合法的下法\n");
                        Sleep(500); 
                        break; 
                    }
                }
                if( j = y) 
                    check_main2(temp,temp1,turn,turn1,num,if_return,map);
            }
        }
        else 
        { 
            printf("不合法的下法\n"); 
            Sleep(500); 
        }
    }
    if( check_turn == 21)     //马的走法规范
    {
        if((x == check_x y == check_y))
        {
            temp = turn; 
            temp1 = turn1; 
            turn = 'O'; 
            turn1 = 'N'; 
            num--;
            printf("三思而后行\n");
            printf("还是你的回合"); 
            Sleep(500); 
        }
        else if( (abs( x - check_x) == 2 abs( y - check_y) == 8) map[check_x][(y+check_y)/2] =='+')
        {
            check_main2(temp,temp1,turn,turn1,num,if_return,map); 
        }
        else if( (abs( x - check_x) == 4 abs( y - check_y) == 4) map[(x + check_x)/2][check_y] == '+' )
        {
            check_main2(temp,temp1,turn,turn1,num,if_return,map); 
        }
        else 
        { 
            printf("不合法的下法\n");
            Sleep(500); 
        }
    }
    if( check_turn == 22)     //相的走法规范
    {
        if((x == check_x y == check_y))
        {
            temp = turn; 
            temp1 = turn1; 
            turn = 'O'; 
            turn1 = 'N'; 
            num--;
            printf("三思而后行\n");
            printf("还是你的回合"); 
            Sleep(500); 
        }
        else if( x = 12 (abs(y - check_y) == 8 abs(x - check_x) == 4))
        {
            if((x == 4 (y == 11 || y == 27))||(x == 8 ( y == 3 || y == 19 || y == 35)) ||(x == 12 (y == 11|| y ==27)))
            {
                if( map[(x+check_x)/2][(y+check_y)/2] == '+') 
                    check_main2(temp,temp1,turn,turn1,num,if_return,map);
                else 
                { 
                    printf("棋子卡住,不可执行");
                    Sleep(500); 
                }
            }
            else 
            {
                printf("不合法的下法\n");
                Sleep(500); 
            }
        }
        else 
        { 
            printf("不合法的下法\n");
            Sleep(500); 
        }
    }
    if( check_turn == 23)     //士的走法规范
    {
        if((x == check_x y == check_y))
        {
            temp = turn; 
            temp1 = turn1; 
            turn = 'O'; 
            turn1 = 'N'; 
            num--;
            printf("三思而后行\n");
            printf("还是你的回合"); 
            Sleep(500);
        }
        else if( abs(x - check_x)== 2 abs( y - check_y) == 4 ((x==4 (y == 15 || y == 23)) || ( x == 6 y == 19) || ( x == 8 ( y == 15 || y == 23))))
        {
            check_main2(temp,temp1,turn,turn1,num,if_return,map); 
        }
        else 
        { 
            printf("不合法的下法\n");
            Sleep(500); 
        }
    }
    if( check_turn == 24)     //将的走法规范
    {
        if((x == check_x y == check_y))
        {
            temp = turn; 
            temp1 = turn1; 
            turn = 'O'; 
            turn1 = 'N'; 
            num--;
            printf("三思而后行\n");
            printf("还是你的回合"); 
            Sleep(500);
        }
        else if( ((abs(x - check_x)== 2 abs( y - check_y) == 0 )|| (abs(x - check_x)== 0 abs( y - check_y) == 4)) x = 4 x = 8 y = 15 y = 23 )
        {
            check_main2(temp,temp1,turn,turn1,num,if_return,map); 
        }
        else 
        {
            printf("不合法的下法\n");
            Sleep(500); 
        }
    }
    if( check_turn == 25)     //炮的走法规范
    {
        if((x == check_x y == check_y))
        {
            temp = turn; 
            temp1 = turn1; 
            turn = 'O'; 
            turn1 = 'N'; 
            num--;
            printf("三思而后行\n");
            printf("还是你的回合"); 
            Sleep(500);
        }
        else if( y == check_y )
        {
            int check_pao = 0;
            if( x check_x)
            {
                for(j = check_x + 2; j= x ;j = j+ 2)
                {
                    if(map[j][y] == '+' );
                    else check_pao++;
                }
                if(check_pao == 1 temp == '+')    //直线行走但不可吃棋子 
                    check_main2(temp,temp1,turn,turn1,num,if_return,map);
                else if( check_pao == 2 temp != '+')    //跳跃吃棋 
                    check_main2(temp,temp1,turn,turn1,num,if_return,map);
                else 
                { 
                    printf("不合法的下法\n");
                    Sleep(500); 
                }
            }
            else 
            {
                for(j = check_x - 2; j= x;j = j - 2)
                {
                    if(map[j][y] == '+' );
                    else { check_pao++;}
                }
                if(check_pao == 1 temp == '+')    //直线行走但不可吃棋子 
                    check_main2(temp,temp1,turn,turn1,num,if_return,map);
                else if( check_pao == 2 temp != '+')    //跳跃吃棋 
                    check_main2(temp,temp1,turn,turn1,num,if_return,map);
                else 
                { 
                    printf("不合法的下法\n");
                    Sleep(500); 
                }
            }
        }
        else if( x == check_x )
        {
            int check_pao = 0;
            if( y check_y)
            {
                for(j = check_y + 4; j= y ;j = j+4)
                {
                    if(map[x][j] == '+' );
                    else check_pao++;
                }
                if(check_pao == 1 temp == '+')    //直线行走但不可吃棋 
                    check_main2(temp,temp1,turn,turn1,num,if_return,map);
                else if( check_pao == 2 temp != '+')    //跳跃吃棋 
                    check_main2(temp,temp1,turn,turn1,num,if_return,map);
                else 
                { 
                    printf("不合法的下法\n");
                    Sleep(500); 
                }
            }
            else 
            {
                for(j = check_y - 4 ; j= y;j = j - 4)
                {
                    if(map[x][j] == '+' );
                    else check_pao++;
                }
                if(check_pao ==1 temp == '+')    //直线行走但不可吃棋子 
                    check_main2(temp,temp1,turn,turn1,num,if_return,map);
                else if( check_pao == 2 temp != '+')    //跳跃吃棋 
                    check_main2(temp,temp1,turn,turn1,num,if_return,map);
                else 
                { 
                    printf("不合法的下法\n");
                    Sleep(500); 
                }
            }
        }
        else 
        { 
            printf("不合法的下法\n");
            Sleep(500); 
        }
    }
    if( check_turn == 26) //卒的走法规范
    {
        if( x = 12)
        {
            if((x == check_x y == check_y))
            {
                temp = turn; 
                temp1 = turn1; 
                turn = 'O'; 
                turn1 = 'N'; 
                num--;
                printf("三思而后行\n"); 
                printf("还是你的回合"); 
                Sleep(500);
            }
            else if( x == check_x + 2 y == check_y) 
                check_main2(temp,temp1,turn,turn1,num,if_return,map);
            else 
            { 
                printf("不合法的下法\n");
                Sleep(500); 
            }
        }
        else
        { 
            if((x == check_x y == check_y))
            {
                temp = turn; 
                temp1 = turn1; 
                turn = 'O'; 
                turn1 = 'N'; 
                num--;
                printf("三思而后行\n");
                printf("还是你的回合"); 
                Sleep(500);
            }
            else if((x - check_x == 0 abs(y-check_y) ==4) ||( x - check_x == 2 abs(y-check_y) == 0)) 
                check_main2(temp,temp1,turn,turn1,num,if_return,map);
            else 
            { 
                printf("不合法的下法\n");
                Sleep(500); 
            } 
        }
    }
}
system("cls");
if( if_return) return;
for(i = 0; i 27; i++)puts(map[i]);
Sleep(5000);
}

C语言课程设计 国际象棋棋盘

#include "stdio.h"
main()
{
    int i,j;
    for(i=0;i<8;i++)
    {
        for(j=0;j<8;j++)
        {
            if((i+j)%2==0)
                printf("%c%c",219,219);
            else
                printf(" ");
        }
        printf("\n");
    }
}