Advertisement
Kaidul

rough

Jan 9th, 2013
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.49 KB | None | 0 0
  1. import javax.swing.JFrame;
  2. import javax.swing.JPanel;
  3. import javax.swing.SwingUtilities;
  4.  
  5. public class NQueen extends JFrame{
  6.    
  7.     public NQueen() {
  8.         initUI();
  9.     }
  10.    
  11.     public void initUI() {
  12.        
  13.         JPanel jp = new JPanel();
  14.         getContentPane().add(jp);
  15.        
  16.         jp.setLayout(null);
  17.  
  18.                     এইখানে show করাতে হবে nQueen(1);
  19.    
  20.         setTitle("NQueen Problem");
  21.         setSize(800, 650);
  22.         setLocationRelativeTo(null);
  23.         setDefaultCloseOperation(EXIT_ON_CLOSE);
  24.     }
  25.    
  26.     final int N = 4;
  27.    
  28.     Integer[] x = new Integer[N + 1];
  29.    
  30.     Boolean place(int queen, int row) {
  31.         for (int prev = 1; prev < queen; prev++) {
  32.             if (x[prev] == row || Math.abs(prev - queen) == Math.abs(x[prev] - row)) {
  33.                 return false;
  34.             }
  35.         }
  36.         return true;
  37.     }
  38.    
  39.     void nQueen(int queen) {
  40.         for (int row = 1; row <= N; row++) {
  41.             if ( place(queen, row) ) {
  42.                 x[queen] = row;
  43.                 if (queen == N) {
  44.                     for (int i = 1; i <= N; i++) {
  45.                         for (int j = 1; j <= N; j++) {
  46.                             if (j != x[i]) {
  47.                                 System.out.print(0 + " ");
  48.                             } else {
  49.                                 System.out.print(x[i] + " ");
  50.                             }
  51.                         }
  52.                         System.out.println();
  53.                     }
  54.                     System.out.println();
  55.                 } else {
  56.                     nQueen(queen + 1);
  57.                 }
  58.             }
  59.         }
  60.     }
  61.    
  62.     public static void main(String[] args) {
  63.         SwingUtilities.invokeLater(new Runnable() {
  64.            
  65.             @Override
  66.             public void run() {
  67.                 NQueen instance = new NQueen();
  68.                 instance.setVisible(true);
  69. //              instance.nQueen(1);
  70.             }
  71.         });
  72.     }
  73.  
  74. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement