【发布时间】:2014-11-14 20:21:11
【问题描述】:
我有一个 8 x 8 棋盘,我正在尝试实现八皇后拼图。在我的游戏中,我创建了一个检查皇后移动的函数,一旦在我的棋盘上按下一个按钮,特定皇后可以移动的所有行和列都会被关闭,这样就不会有两个皇后相互攻击。但是我被困住了,试图弄清楚如何在我的代码中关闭所有对角线按钮。
private JButton[][] Squares = new JButton[8][8];
for (int i = 0; i < Squares.length; i++) {
for (int j = 0; j < Squares[i].length; j++) {
if(Squares[i][j].getModel().isPressed()){
for (int x=0; x<8; x++){
Squares[i][x].setEnabled(false); //turns off column buttons
Squares[x][j].setEnabled(false); //turns off row buttons
//Squares[i][j+1].setEnabled(false);
//Squares[i+1][j-1].setEnabled(false);
}
一旦皇后被放在棋盘上,我需要做什么才能禁用所有对角按钮?
编辑:我注意到如果我这样做Squares[x][x].setEnabled(false);,那么它会给我两个对角线之一,但是这只给出对角线一次,然后单击第二个按钮后一切都会中断。
【问题讨论】:
-
您注意到主对角线上正方形的坐标是什么?那上面对角线上的正方形的坐标呢?
-
老实说,我不确定,无论我尝试什么,我都遇到了错误,最终我陷入了困境。我知道,如果我尝试增加一个,有时我会得到一个对角线,但由于我每次尝试时都在硬编码,如果我在最后一列/行上,我经常会遇到错误。