Hey Leute
Mein erstes eigen Projekt in Java. Nun komm ich nicht weiter. 8Damen Problem:Setzte auf einem Schachbrett 8x8 - 8 Damen die sich nicht stören können (waagrecht / senkrecht / diagonal)
Nun schaff ich die Diagonale nicht.
Hab zahlreiche Lösungen gefunden im Netzt jedoch will ich diese auf meinen Code anpassen, schaffs aber nicht. Kann mir wer ein bischen helfen? Bitte an meinem Code, tipps geben oder so was damit ich das hinkriege und verstehe.
Danke
Mein erstes eigen Projekt in Java. Nun komm ich nicht weiter. 8Damen Problem:Setzte auf einem Schachbrett 8x8 - 8 Damen die sich nicht stören können (waagrecht / senkrecht / diagonal)
Nun schaff ich die Diagonale nicht.
Hab zahlreiche Lösungen gefunden im Netzt jedoch will ich diese auf meinen Code anpassen, schaffs aber nicht. Kann mir wer ein bischen helfen? Bitte an meinem Code, tipps geben oder so was damit ich das hinkriege und verstehe.
Code:
import java.awt.Color;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class Board extends JFrame {
JPanel panel = null;
boolean sw = false;
int x = 50;
int y = 0;
int queens = 8;
boolean[][] felder = new boolean[8][8];
public Board() {
setTitle("Queen");
setSize(500, 500);
setLayout(null);
for (int row = 0; row < 8; row++) {
for (int column = 0; column < 8; column++) {
felder[column][row] = validColumn(column, row)
&& validRow(column, row) && validDiag(column, row);
}
}
for (int row = 0; row < 8; row++) {
for (int column = 0; column < 8; column++) {
panel = new JPanel();
sw = !sw;
panel.setBackground(sw ? Color.WHITE : Color.BLACK);
panel.setSize(50, 50);
panel.setLocation(x, y);
if (felder[column][row]) {
drawQueen(column, row);
}
add(panel);
y = y + 50;
}
sw = !sw;
x = x + 50;
y = 0;
queens++;
}
this.setVisible(true);
}
public void drawQueen(int column, int row) {
Queen queen = new Queen(new ImageIcon("queen.png").getImage(), row,
column);
panel.add(queen);
}
public boolean validColumn(int column, int row) {
for (int queens = 0; queens < 8; queens++) {
if (felder[queens][row]) {
return false;
}
}
return true;
}
public boolean validRow(int column, int row) {
for (int queens = 0; queens < 8; queens++) {
if (felder[column][queens]) {
return false;
}
}
return true;
}
public boolean validDiag(int column, int row) {
for (int queens = 0; queens < 8; queens++) {
if (row == column) {
System.out.println("Row: " + row + "Column: " + column
+ "Queens: " + queens);
return false;
}
}
return true;
}
public static void main(String[] args) {
new Board();
}
}
Danke