现在我正在学习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);
}
答案 0 :(得分:1)
更多代码会有所帮助(我不懂法语?)。但基本上你是在试图访问一个未在任何地方定义的变量。您静态引用posPieceAttaquanteEchec,这意味着它使用static关键字声明,如下所示:
class Partie
{
static private int posPieceAttaquanteEchec;
}
变量的对象版本将被定义为:
class Partie
{
private int posPieceAttaquanteEchec;
}
如果要引用变量的对象版本,可以使用:
maPartie.posPieceAttaquanteEchec