Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Don';我不明白为什么这个变量不能解析为一个类型?(爪哇)_Java_Arrays_Integer - Fatal编程技术网

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;
}