我创建了两个类,一个名为“Bucket
”,另一个名为“Player
”。
在“Bucket”中,我有一个构造函数方法,它创建一个包含三个值-1,1和1的虚拟存储桶(即小数组)。同时,我创建了一个获取存储桶数组的方法。
在“Player”类中,我创建了一个使用更大数组的方法(我已经调用了这个更大的数组“ArrayOfBuckets”),它使用循环在每个索引值存储一个新的存储桶,直到某个点(当我> NumberSticks时)。但是,当我尝试设置
时 ArrayofBuckets[i] = bucketInstance.getBucket();
我从Eclipse收到错误,说"Type mismatch: cannot convert from Bucket to int"
。我花了一个小时试图解决这个问题,但无济于事。任何帮助都会非常好。非常感谢,以下是所有使用的代码:
玩家类:
import java.util.Scanner;
public class Player {
Scanner scan = new Scanner(System.in);
public String name;
private int pType;
private int[] ArrayOfBuckets;
public Player(String tempName)
{
this.name = tempName; //this. is unneccessary
}
public void ArrayOfBuckets(int NumberSticks) //this is a constructor method and creates the arrays that contains a
{
ArrayOfBuckets = new int[NumberSticks];
int i = 0;
while(i<NumberSticks)
{
Bucket bucketInstance = new Bucket();
ArrayOfBuckets[i] = bucketInstance.getBucket();//new Bucket(); //ADD THIS
i++;
}
}
和Bucket Class:
import java.util.Random;
public class Bucket {
// private int[][] largeArray = null; //WTF DO I DO HERE
private int AIChoiceStick;
private int[] bucket;
private Random random = new Random();
private int CurrentScore[] = new int[51]; //at max, if 100 sticks are initially chosen, then each player takes at max 50 sticks,
private int h = 0; //^so why not have one more in case
public Bucket()
{
bucket = new int[3];
bucket[0] = 1;
bucket[1] = 1;
bucket[2] = 1;
public int[] getBucket()
{
return bucket;
}
答案 0 :(得分:0)
您正在谈论二维数组。
private int[][] ArrayOfBuckets;
你的ArrayOfBuckets(根据命名约定应该只是 buckets )是一个数组数组,因此它有两组方括号。
然后初始化:
ArrayOfBuckets = new int[NumberSticks][3];
顺便说一句,如果你想在一个数组中有50个元素的空间,那么将它初始化为 new int [50] ,这样它就会有0到49的索引。