-2

私はチェスゲームをしようとしていて、2つのピースを交換するのに行き詰まりました

これは私の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 "";
   }

 }  

次に、ChessSquareクラスを2D配列として使用して、これをChessBoardクラスに追加します。

     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;


 }


 }

 } 

2つのピースを交換しようとしています...しかし、それは機能していませんか?助けてください... エラー

4

1 に答える 1

0

メソッドgetXpositionとは、配列ではなく、getYpositionカスタム クラスのインスタンス メソッドです。メソッドにアクセスするには、配列内の要素を参照する必要があります。次に例を示します。ChessSquareChessSquare 2D

xPos1 = s[0][0].getYposition();
yPos1 = s[0][0].getXposition();
于 2013-03-19T01:45:49.250 に答える