Hallo Leute,
Ich versuche das Spiel Mastermind mit Zahlen zu programmieren wobei keine Zahl doppelt vorkommen darf. Nun bin ich auf das Problem gestoßen ,dass ich die zufällige ArrayList nicht mit der des Spieler vergleichen kann (Das Programm kompiliert nicht). Ich habe auch bereits versucht die ArrayList mit einem "normalen" Array zu vergleichen was allerdings auch nicht klappt. Könnt ihr mir vielleicht weiter helfen? Vielen Dank im Voraus
Java:
importjava.util.Random;importjava.util.Scanner;importjava.util.ArrayList;publicclassMastermind{publicstaticvoidmain(String[] args){int size =8;ArrayList<Integer> list =newArrayList<Integer>(8);for(int i =1; i <=8; i++){
list.add(i);}Random rand =newRandom();int y =1;while(y <=4){int index = rand.nextInt(list.size());//System.out.println(list.remove(index));
y = y +1;}Scanner input =newScanner(System.in);System.out.println("Gib ein");ArrayList<Integer> array1 =newArrayList<Integer>(4);for(int i =0; i<array1.size(); i++){ArrayList<Integer>.array1[i]= input.nextInt();if(array1 == list)System.out.println("Die zahlen sind richtig");}}}
Zeile 28: i < 4 statt < array1.size() (die Größe der Liste ist 0, die Angabe 4 im Konstruktor der ArrayList in Zeile 27 ist nur die initiale Kapazität), Zeile 29: array1.add(input.nextInt()); und was soll in Zeile 31 verglichen werden?!? Mal abgesehen davon, dass Du mit == Referenzen vergleichst, kann eine 8-elementige Liste schlecht gleich einer 4-elementigen sein.
Nachtrag: hätte ich beinahe vergessen zu erwähnen, dass die Zeilen 17 bis 22 gar nichts bewirken. Zeile 11 brauchst Du auch nicht, da Du die Variable nirgends verwendest.
In der Doku von ArrayList kannst du lesen, was @mihe7 oben schon geschrieben hat, Der Konstruktor new ArrayList<>(4) erzeugt eine Liste mit einer initialen Kapazität (Fassungsvermögen). Sie ist dennoch leer und enthält keine Elemente. Die Methode size() liefert aber die Anzahl der Elemente in der Liste (Doku anschauen!).
Als nächstes solltest du dir also überlegen, wie du die vier Zahlen vom Benutzer einliest. Ansatzweise ist das ja bereits vorhanden, Schau dir an, wie du der Liste ein Element hinzufügst (hast du in der erste Liste ja schon gemacht).
Zuletzt willst du die ersten vier Elemente der beiden Listen vergleichen. Das musst du manuell machen. Jedes Element für sich.