首页 > 编程语言 > 详细

c++ 八皇后

时间:2020-01-09 14:14:44      阅读:56      评论:0      收藏:0      [点我收藏+]
#include <stdio.h> 

char Chessboard[8][8]; 
int QueenPlace(int LocX,int LocY); 
int N_Queens(int LocX,int LocY,int Queens) 
{ 

    int i,j; 
    int Result=0; 

if(Queens==8) 
    return 1; 
else 
    if(QueenPlace(LocX,LocY)) 
    { 
        Chessboard[LocX][LocY]=Q; 
        for(i=0;i<8;i++) 
            for(j=0;j<8;j++) 
            { 
                Result+=N_Queens(i,j,Queens+1); 
                if(Result>0) 
                break; 
            } 

        if(Result>0) 
            return 1; 
        else 
        { 
            Chessboard[LocX][LocY]= ; 
            return 0; 
        } 
    } 
    else 
        return 0; 
} 

int QueenPlace(int LocX,int LocY) 
{ 
    int i,j; 
    if(Chessboard[LocX][LocY]!= ) 
    return 0; 

    for(j=LocY-1;j>=0;j--) 
    if(Chessboard[LocX][j]!= ) 
    return 0; 

    for(j=LocY+1;j<8;j++) 
     if(Chessboard[LocX][j]!= ) 
    return 0; 

    for(i=LocX-1;i>=0;i--) 
     if(Chessboard[i][LocY]!= ) 
    return 0; 

    for(i=LocX+1;i<8;i++) 
     if(Chessboard[i][LocY]!= ) 
    return 0; 
  
    i=LocX-1; 
    j=LocY-1; 
    while(i>=0 && j>=0) 
     if(Chessboard[i--][j--]!= ) 
    return 0; 

    i=LocX+1; 
    j=LocY-1; 
    while(i<8 && j>=0) 
     if(Chessboard[i++][j--]!= ) 
    return 0; 

    i=LocX-1; 
    j=LocY+1; 
    while(i>=0 && j<8) 
     if(Chessboard[i--][j++]!= ) 
    return 0; 

    i=LocX+1; 
    j=LocY+1; 
    while(i<8 && j<8) 
     if(Chessboard[i++][j++]!= ) 
    return 0; 

    return 1; 
} 

void main() 
{ 
    int i,j; 
    for(i=0;i<8;i++) 
        for(j=0;j<8;j++) 
            Chessboard[i][j]= ;

    N_Queens(0,0,0); 

    printf("the graph of 8 Queens on the chessboard.\n"); 
    printf(" 0 1 2 3 4 5 6 7\n"); 
    printf(" +---+---+---+---+---+---+---+---+\n"); 

    for(i=0;i<8;i++) 
    { 
        printf(" %d |",i); 
        for(j=0;j<8;j++) 
            printf(" %c |",Chessboard[i][j]); 
        printf("\n +---+---+---+---+---+---+---+---+\n"); 
    } 
}

c++ 八皇后

原文:https://www.cnblogs.com/tobetterlife/p/12171005.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!