正文

八皇后问题(C++)2006-05-23 15:58:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/bakers/14717.html

分享到:

//autor:baker//email:baker1203@sina.com//course designing for data structure and c++ programming//time:23/5/06/*   discription:             place eight quenes onto a chessborad of 8*8 standard,if only that case take place.any one quene can not attack others   requiring:             1.output all feasible schemes     2.best of all,you can print the chessboard by graphic delineation,and play the progress dynamic    3.you programme can put into other chessboard.    */ #include"iostream.h"#include"conio.h"#include"graphics.h"#include"dos.h"#include"stdio.h"#include"stdlib.h"#define QUENE 8 int num; class quene{      public:             void addnew(int);             void display();             void reset();             void init();                           int a[QUENE];              int b[QUENE*2-1];              int c[QUENE*2-1];              int x[QUENE];      }; void quene::addnew(int i){     int j;     for(j=0;j<=QUENE-1;j++)      if(a[j]&&b[i-j+QUENE-1]&&c[i+j])      {          x[i]=j;          a[j]=0;          b[i-j+QUENE-1]=0;          c[i+j]=0;          if(i<QUENE-1)             addnew(i+1);          else              display();          a[j]=1;          b[i-j+7]=1;          c[i+j]=1;                 }     }     void quene::display(){          int i;  init();  setcolor(RED);  cout<<"number:"<<num+1;  for(i=0;i<=QUENE-1;i++)  circle((x[i]+1)*50+25,50*(i+1)+25,24);  num++;  getch();   }void quene::init(){  int i,j;  cleardevice();  setcolor(WHITE);  for(i=0;i<QUENE;i++)    for(j=0;j<QUENE;j++)  {   rectangle(50*(i+1),50*(j+1),50*(i+2),50*(j+2));   if((i+j)%2==0)   {     floodfill(50*(i+1)+5,50*(j+1)+5,WHITE);   }  }   } int main(){ int i;  int size;    int gdriver=DETECT,gmode;      quene que;    for(i=0;i<=QUENE-1;i++)       que.a[i]=1;    for(i=0;i<=(QUENE-1)*2;i++)    que.b[i]=que.c[i]=1;    initgraph(&gdriver,&gmode,"..\\bgi");            que.addnew(0);    cout<<endl;    cout<<num<<" sulutions found! ";    getch();       }       TCDS中运行,通过 注释:略

阅读(8551) | 评论(1)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

loading...
您需要登录后才能评论,请 登录 或者 注册