Java Don';我不明白为什么这个变量不能解析为一个类型?(爪哇)
我正在尝试为一个名为Java Don';我不明白为什么这个变量不能解析为一个类型?(爪哇),java,arrays,integer,Java,Arrays,Integer,我正在尝试为一个名为PegSwap的作业制作一个游戏。游戏的动态性并不重要,但“棋盘”是一个有7个空格的棋盘。3个红桩,3个蓝桩,随机位置,中间有一个空白点。我想做的就是随机生成每个桩的初始位置。这是我的密码: package game; import java.util.List; public class PegGame implements GameState { //numbers corresponding to beg color to be used in list priv
PegSwap
的作业制作一个游戏。游戏的动态性并不重要,但“棋盘”是一个有7个空格的棋盘。3个红桩,3个蓝桩,随机位置,中间有一个空白点。我想做的就是随机生成每个桩的初始位置。这是我的密码:
package game;
import java.util.List;
public class PegGame implements GameState {
//numbers corresponding to beg color to be used in list
private final int BLANK = 3;
private final int BLUE = 1;
private final int RED = 2;
//list that maintains peg at position i
private int[] pegs = new int[7];
//generates a randomized start state for the board
public int[] startState(){
int blues = 0;// how many blues have been added so far?
int reds = 0; //how many reds have been added so far?
pegs[3] = 3; //puts blank spot in the center
for(int i = 1; i<6; i++){
if(i == 3) break;
else if(blues < 3 && reds < 3) pegs[i] = (int) (Math.random()*2);
else{
if(blues == 3) pegs[i] = 2;
if(reds == 3)pegs[i] = 1;
}
}
return pegs;
}
我认为你的代码没有问题。 这应该行得通。尝试清理和重建 如果不起作用。
请提供您的控制台上给出的具体问题。@user1354678什么?你的意思是类方法不能访问它们自己的类字段?你是否尝试过清理和重建项目?这两行在语法上是有效的(声明和访问),可能是因为startState()方法实际上是一个静态方法吗?除了类中缺少右括号之外,代码没有问题。有些东西你没给我们看。另外,如果不使用常量,为什么要为值声明常量?(例如
pegs[3]=3
而不是pegs[3]=BLANK
)@user2407420,不一定,您可以访问非静态方法中的静态和非静态成员,而不考虑它们的访问修饰符(在同一类中)。在静态方法内部,您只能访问静态成员,除非您有一个对实例的引用(顺便说一句,不是您的实例)。我修复了它。我只是删除了这一行,然后重新键入。一定是一个Eclipse bug。谢谢大家
public int[] winState(){
for(int i=0; i<6; i++){
if(pegs[i] == 3) pegs[i] = 3;
if(pegs[i] == 2) pegs[i] = 1;
if(pegs[i] == 1) pegs[i] = 2;
}
return pegs;
}