-2

现在我正在学习 Java,但我在无法解决或不在现场的问题上遇到了问题 if ( (maPartie.getEchiquier().getPiecePosition(pos).getPosition())==Partie.posPieceAttaquanteEchec) )posPieceAttaquanteEchec我找不到问题出在哪里..

感谢帮助我,我是一个开始,我只要求学习;)

    while(maPartie.estEchec(joueurActuel)) {
        if (maPartie.getEchiquier().getPiecePosition(Partie.posPieceAttaquanteEchec) instanceof Roi)

                            //
                            //
    do {
        String str;
        do {    
        System.out.println(joueurActuel.getNom()+ " - Piece à déplacer : ");
        str = whichpiece.nextLine();
        } while (str.length() == 0);

        if (str.equals("1")) {
        Coup petitRoque = new Coup(1);
        maPartie.jouerCoup(joueurActuel, petitRoque);
            roque = true;
            break;
        } else if (str.equals("2")) {

    Coup grandRoque = new Coup(2);
    maPartie.jouerCoup(joueurActuel, grandRoque);
            roque = true;
            break;
    }

    p = maPartie.getEchiquier().getPiecePosition(new Position(str));
        if (p != null) {

        Couleur couleur = joueurActuel.getCouleurPieces();


        List<Position> listPos = p.positionsAtteignableEchiquier(maPartie.getEchiquier());
         for (Position pos : listPos) {
            if ( (maPartie.getEchiquier().getPiecePosition(pos).getPosition()) == (Partie.posPieceAttaquanteEchec) ) {

System.out.println("La piece choisie est : " + p + " positions possibles --> " + p.positionsAtteignableEchiquier(maPartie.getEchiquier()));
        echec = true;
        String str2;
        do {
         System.out.println(joueurActuel.getNom() + " - Déplacement à faire : ");
         str2 = whichpiece.nextLine();
        } while (str2.length() == 0);

        Coup coupPiece = new Coup(p, new Position(str2));
       maPartie.jouerCoup(joueurActuel, coupPiece);             

         break;
        }
        else {

            }
        }
        }
        } while(p == null);
        }
4

1 回答 1

1

更多代码会有所帮助(我不懂法语?)。但基本上你正在尝试访问一个未在任何地方定义的变量。您正在静态引用 posPieceAttaquanteEchec,这意味着它是使用 static 关键字声明的,如下所示:

class Partie
{
   static private int posPieceAttaquanteEchec;
}

变量的对象版本将被定义为:

class Partie
{
   private int posPieceAttaquanteEchec;
}

如果要引用变量的对象版本,可以使用:

maPartie.posPieceAttaquanteEchec
于 2013-06-20T23:03:20.583 回答