八皇后问题
来源:互联网 发布:淘宝bug 编辑:程序博客网 时间:2024/05/16 10:18
import java.awt.*;import javax.swing.*;public class EightQueens extends JApplet{public static final int SIZE=8;private int[] queens=new int[SIZE];public EightQueens(){search(0);add(new ChessBoard(),BorderLayout.CENTER);}private boolean search(int row){if(row==SIZE){return true;}for(int column=0;column<SIZE;column++){queens[row]=column;if(isValid(row,column)&&search(row+1))return true;}return false;}private boolean isValid(int row,int column){for(int i=1;i<=row;i++){if(queens[row-i]==column||queens[row-i]==column-i||queens[row-i]==column+i)return false;}return true;}class ChessBoard extends JPanel{private Image queenImage=new ImageIcon("image/flag0.gif").getImage();ChessBoard(){this.setBorder(BorderFactory.createLineBorder(Color.BLACK,2));}protected void paintComponent(Graphics g){super.paintComponent(g);for(int i=0;i<SIZE;i++){//System.out.println("1");int j=queens[i];g.drawImage(queenImage, j*getWidth()/SIZE,i*getHeight()/SIZE,getWidth()/SIZE,getHeight()/SIZE,this);}for(int i=1;i<SIZE;i++){g.drawLine(0, i*getHeight()/SIZE, getWidth(), getHeight()*i/SIZE);g.drawLine(i*getWidth()/SIZE, 0, i*getWidth()/SIZE, getHeight());}}}}
0 0
- 八皇后 n皇后 问题
- 八皇后N皇后问题
- 八皇后问题
- 八皇后问题
- 八皇后问题
- 八皇后问题(2)
- 八皇后问题(3)
- 八皇后问题
- 八皇后问题程序
- 浅谈八皇后问题
- 八皇后问题
- 八皇后问题
- 八皇后问题
- 八皇后问题
- 八皇后问题求解
- 八皇后问题
- 八皇后问题
- 八皇后问题
- UIImageView和UIButton的区别
- @SuppressWarnings注解
- %02f前面却出现很多6个f
- linux下为php5.5安装apc失败解决办法
- windows不同场景下的系统会话与系统进程
- 八皇后问题
- Android ViewManager解读之requestLayout() 详解
- Cordova for iOS —— 创建Cordova工程
- HDOJ1004.Let the Balloon Rise
- 【PA2014Final】【BZOJ3721】Bazarek
- 【Android技术整理】对多分辨率的支持
- vim 快捷键总结
- Android数据存储(3)——SQLite数据库的操作_增删改查完整输出
- 程序猿老张-下