我一直在尝试做国际象棋游戏并且卡在交换两个方面
这是我的ChessSquare类
public class ChessSquare extends JButton
{
public int Yposition;
public int Xposition;
private String Type;
public ChessSquare( Icon s, int y , int x , String piece )
{
super(s);
Yposition = y;
Xposition = x;
Type = piece ;
}
public int getXposition()
{
return this.Xposition;
}
public int getYposition()
{
return this.Xposition;
}
public String getType()
{
return "";
}
}
然后我将此添加到ChessBoard类,使用ChessSquare类作为2D数组
public class ChessBoard extends JFrame implements ActionListener
{
String type;
ChessSquare[][] s = new ChessSquare[8][8];
int xPos1,xPos2,yPos1,yPos2,i,j;
JPanel panel;
........
public void actionPerformed(ActionEvent e)
{
Boolean flag = false ;
if(!flag)
{
xPos1 = s.getYposition();
yPos1 = s.getXposition();
flag = true;
}
else
{
xPos2 = s.getYposition();
yPos2 = s.getXposition();
s[xPos1][yPos1] = s[xPos2][yPos2];
s[xPos2][yPos2] = s[xPos1][yPos1];
flag = false;
}
}
}
尝试交换两件......但它不起作用?请帮忙...
答案 0 :(得分:0)
方法getXposition
和getYposition
是自定义ChessSquare
类的实例方法,而不是您的ChessSquare
数组。要访问这些方法,您必须引用2D
数组中的元素,例如:
xPos1 = s[0][0].getYposition();
yPos1 = s[0][0].getXposition();