2015-01-28 2 views
0

Я создал два класса, один из которых называется «Bucket», а другой - «Player».Создание массива, содержащего несколько массивов

В «Bucket» у меня есть метод конструктора, который создает виртуальный ковш (т. Е. Малый массив), который содержит три значения - 1, 1 и 1. Также я создал метод для получения массива ведра.

В классе «Player» я создал метод, который использует больший массив (я назвал этот более массивный массив «ArrayOfBuckets»), который использует цикл для хранения нового ведра при каждом значении индекса, вплоть до определенная точка (когда i> 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 Класс:

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

'public void ArrayOfBuckets (int NumberSticks)' is ** not ** a 'constructor'. –

+0

Вы уверены, что указали нам код, который дает вам проблему? Это прямая копия или вставка? –

ответ

0

Вы говорите о двумерная массив.

private int[][] ArrayOfBuckets; 

Ваш ArrayOfBuckets (должен быть только ведра согласно именования) является массивом массивов, поэтому он получает два набора квадратных скобок.

Тогда инициализация:

ArrayOfBuckets = new int[NumberSticks][3]; 

Кстати, если вы хотите иметь место для 50 элементов в массиве, а затем инициализировать его новые ИНТ [50] поэтому он будет иметь индексы от 0 до 49 .

+0

Большое спасибо - это решило проблему! – PiAddict34

Смежные вопросы