Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import javax.swing.JFrame;
- import javax.swing.JPanel;
- import javax.swing.SwingUtilities;
- public class NQueen extends JFrame{
- public NQueen() {
- initUI();
- }
- public void initUI() {
- JPanel jp = new JPanel();
- getContentPane().add(jp);
- jp.setLayout(null);
- এইখানে show করাতে হবে nQueen(1);
- setTitle("NQueen Problem");
- setSize(800, 650);
- setLocationRelativeTo(null);
- setDefaultCloseOperation(EXIT_ON_CLOSE);
- }
- final int N = 4;
- Integer[] x = new Integer[N + 1];
- Boolean place(int queen, int row) {
- for (int prev = 1; prev < queen; prev++) {
- if (x[prev] == row || Math.abs(prev - queen) == Math.abs(x[prev] - row)) {
- return false;
- }
- }
- return true;
- }
- void nQueen(int queen) {
- for (int row = 1; row <= N; row++) {
- if ( place(queen, row) ) {
- x[queen] = row;
- if (queen == N) {
- for (int i = 1; i <= N; i++) {
- for (int j = 1; j <= N; j++) {
- if (j != x[i]) {
- System.out.print(0 + " ");
- } else {
- System.out.print(x[i] + " ");
- }
- }
- System.out.println();
- }
- System.out.println();
- } else {
- nQueen(queen + 1);
- }
- }
- }
- }
- public static void main(String[] args) {
- SwingUtilities.invokeLater(new Runnable() {
- @Override
- public void run() {
- NQueen instance = new NQueen();
- instance.setVisible(true);
- // instance.nQueen(1);
- }
- });
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement