八皇后问题算法分析

八皇后问题算法分析

ID:15285774

大小:99.50 KB

页数:4页

时间:2018-08-02

八皇后问题算法分析_第1页
八皇后问题算法分析_第2页
八皇后问题算法分析_第3页
八皇后问题算法分析_第4页
资源描述:

《八皇后问题算法分析》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、流程图八皇后问题算法分析在这个问题中首先定义的是一个用于构造界面的二位数组a【i】【j】和一个用于判断的表头数组number【】。在开始进行八皇后棋子排列的时候,首先对行进行递增循环,即i初始值为0,每次i++,i最大值为8的循环。在每次循环中产生一个小于8的随机数q,然后判断表头数组number【】中number【q】位置的值是否为1,如果不是,则在二维数组a【i】【q】位置上打印表示棋子的“K”;如果为1,则返回产生随机数的步骤继续产生随机数。在循环到i>8时,跳出循环,这时候一个完整的八皇后

2、排列也就出来了。源代码:packagequeen;importjava.awt.*;importjava.awt.event.*;classequeenextendsFrameimplementsActionListener{//构造界面和定义数组Buttonenter;Buttonclean;Buttonexit;intnumber[]=newint[8];inti,j,q;Labela[][]=newLabel[8][8];equeen(Strings){GridLayoutgrid;grid

3、=newGridLayout(9,8);setLayout(grid);enter=newButton("begin");clean=newButton("clean");exit=newButton("esit");for(inti=0;i<8;i++){for(intj=0;j<8;j++){a[i][j]=newLabel();if((i+j)%2==0)a[i][j].setBackground(Color.yellow);elsea[i][j].setBackground(Color.g

4、ray);add(a[i][j]);}}for(inti=0;i<8;i++){number[i]=0;//初始化判断数组}add(enter);add(clean);add(exit);enter.addActionListener(this);clean.addActionListener(this);exit.addActionListener(this);setBounds(100,100,300,300);setVisible(true);validate();}publicvoidac

5、tionPerformed(ActionEvente){if(e.getSource()==enter){for(inti=0;i<8;i++){for(intj=0;j<8;j++){a[i][j].setText("");}}for(inti=0;i<8;i++){while(true){q=(int)(Math.random()*8);if(number[q]==0){a[i][q].setText("K");number[q]=1;break;}elseif(number[q]!=0)co

6、ntinue;}}for(inti=0;i<8;i++){number[i]=0;}}if(e.getSource()==clean){for(inti=0;i<8;i++){for(intj=0;j<8;j++){a[i][j].setText("");}}}if(e.getSource()==exit){System.exit(0);}}}publicclassqueen{publicstaticvoidmain(String[]args){newequeen("八皇后问题");}}

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。