2016-05-21 13 views
0

Ich versuche, ein grundlegendes "Deal oder No Deal" Spiel in Java zu machen. Ich stoße auf Probleme mit Hinzufügen und Entfernen zu meiner mehrdimensionalen Arraylist. Das Problem tritt in Zeile 7 von shuffleBoxes() und Zeile 9 von playerBox() auf.Deal or No Deal Spiel Java ArrayList Probleme

package Deal; 

import java.util.*; 
import java.io.*; 
import javax.swing.*; 

public class sample { 
    public static ArrayList <ArrayList<Integer>> boxes = new ArrayList<ArrayList<Integer>>(22); 

    public static void main (String [] args) throws IOException { 
     playerBox(); 
     dealerOffer(); 
    } 

    public static void shuffleBoxes() { 
     int [] prizes = {1,2,3,4,5,6,10,50,100,250,500,750,1000,3000,10000,15000,20000,35000,50000,75000,100000,250000}; 
     for (int i = 0; i < boxes.size(); i++) { 
      boxes.get(i).add(i+1); 
     } 
     for (int j = 0; j < boxes.size(); j++) { 
      boxes.get(j).get(1).add(prizes[j]); 
     } 
     Collections.shuffle(boxes); 
    } 

    public static int playerBox() { 
     String[] boxChoice = {"1", "2", "3", "4", "5", "6", "7", "8", "9" ,"10", "11", "12", "13", 
     "14", "15", "16", "17", "18", "19", "20", "21", "22"}; 
     String input = (String)JOptionPane.showInputDialog(null, "Choose a box...", "Choose carefully", 
     JOptionPane.QUESTION_MESSAGE, null, boxChoice, boxChoice[0]); 
     int chosenBox = Integer.parseInt(input); 
     for (int i = 0; i < boxes.size(); i++) { 
      if (chosenBox == boxes.get(i).get(0)) 
       boxes.get(i).get(0).remove(chosenBox); 
     } 
     return chosenBox; 
    } 

    public static void dealerOffer() { 
     int average; 
     int sum = 0; 
     for (int i = 0; i < boxes.size(); i++) { 
      sum = sum + (boxes.get(i).get(1)); 
     } 
     average = sum/boxes.size(); 
    } 
} 
+2

Also was willst du? –

+2

'Ich stoße auf Probleme mit dem Hinzufügen und Entfernen zu meinem multidimensionalen Arraylist. Es wäre gut, wenn erklären, was die Probleme sind. Welche Fehler? Was erwarten Sie? –

Antwort

3

Sie erstellen

ArrayList <ArrayList<Integer>> boxes = new ArrayList<ArrayList<Integer>>(22); 

aber nicht alles in die ArrayList setzen. Ich sehe keine Hinweise auf boxes.add(...) in Ihrem Code, so dass jeder Versuch, boxes.get() zu verwenden, eine Ausnahme auslöst.

Es ist überhaupt nicht klar, warum Sie denken, Sie brauchen eine List<List<Integer>>. Eine mehrdimensionale Liste ist in der Regel Code-Geruch. In 99% der Fälle ist eine andere Datenstruktur mit benutzerdefinierten Objekten besser geeignet.

+1

Danke für den Tippfehler @Tom –

Verwandte Themen