Array soll mit zufälligen Werten aus anderem Array gefüllt werden

jenny-birdy

Grünschnabel
Hallo,

ich habe ein Problem mit einer Aufgabe, bei dem es um das Spiel Mastermind geht.
Bei Mastermind ist eine Sequenz von Farben zu erraten, wobei die Reihenfolge eine Rolle spielt.
In dieser Aufgabe sind Teile dieses Spiels zu implementieren. Erlaubt sind dabei hier
nur die Farben rot (r), gelb (g), blau (b) und weiß (w).
Gegeben ist die folgende Klasse SecretValueClass:
public class SecretValueClass {
public static final String[] allowedValues = {„r“, „g“, „b“, „w“};
private String[] secretArr = new String[3];
}


Man soll nun die Klasse um einen Konstruktor ohne Parameter erweitern, was für mich jetzt kein Problem darstellt. Der Konstruktor soll allerdings das Array secretArr mit zufälligen Werten aus dem Array allowedValues füllen. Das heißt, ich brauche hierfür de Math.random-Funktion, oder?

Ich weiß leider nicht wie der korrekte Code dann auszusehen hat. Wäre sehr dankbar, wenn mir das jemand verraten könnte.

Außerdem soll man anschließend eine Methode public boolean isSolution(String[] colorArr) schreiben, die prüft, ob das übergebene Array mit secretArr übereinstimmt, wobei man ja auch aufpassen muss, dass die Reihenfolge eine Rolle spielt.
Auch hier wäre ich für Hilfe sehr dankbar. :confused:

Vielen Dank schon mal...
 
Hallo jenny-birdy,

ich könnte dir den fertigen Code hier einfach "reinklatschen" aber ich denke, da dies offensichtlich eine Lernaufgabe ist, es wäre besser wenn ich dir nur Ansätze liefere, ansonsten würde ich dir keinen Gefallen tun. Ich gehe auch davon aus, dass du garkeine bis wenig Erfahrung mit Programmiersprachen hast, also sei mir nicht böse wenn ich teilweise simple Sachen hier hinschreibe.

Schaumal hier Random.nextInt(int n) wegen der Zufallszahl.

Wenn du etwas in das secretArr schreiben möchtest machst du es z.B. so:
Java:
secretArr[0] = "hallo"; // Für die 1. Stelle
secretArr[1] = "hallo"; // Für die 2. Stelle
usw.

Wenn du alles richtig verstanden hast dürftest du keine Hilfe mehr für die zweite Aufgabe benötigen.
Falls du trotzdem keine Idee haben solltest für die zweite Aufgabe scheu dich nicht zu fragen.

mfg,
swas
 
Hallo,

vielen Dank schon mal für die Antwort. Allerdings bringt mich das nicht wirklich weiter. Mein Problem besteht vor allem darin, dass ich den genauen Code bzgl. dem Random nicht hinbekomme.

Wie man ein Array mit Werten füllt, weiß ich. Aber ich will ja nicht jeden Slot einzeln füllen...
Die zweite Aufgabe habe ich mittlerweile hinbekommen. Wie gesagt, nur bei der Random-Funktion meckert mein Compiler jedes mal...

MfG,
Jenny
 
Hallo!

Was genau verstehst du denn nicht?

Mein Problem besteht vor allem darin, dass ich den genauen Code bzgl. dem Random nicht hinbekomme.

Woran genau hakt es denn?

Wie gesagt, nur bei der Random-Funktion meckert mein Compiler jedes mal...
Was genau sagt der Compiler denn?

Eigentlich ist die Random-Klasse wirklich selbsterklärend :)

Hier mal ein Minimalbeispiel, dass 10 Zufallszahlen erzeugt. Zunächst legen wir ein neues Random Objekt an. Dann rufen wir in einer Schleife random.nextInt( int n) auf. Diese Funktion liefert eine Zahl zurück, die größer oder gleich 0 ist und kleiner als das übergebene n.

In diesem Beispiel werden also Zahlen im Intervall [0,9] erzeugt:

Java:
import java.util.Random;

public class ZahlenDingsBums {
	public static void main(String[] args) {
		Random random = new Random();
		for (int i = 0; i < 100; i++) {
			int myInt = random.nextInt(10);
			System.out.println(myInt);
		}
	}
}

Soweit klar? Dann versuch das mal auf die Aufgabe zu übertragen :)

Gruß,

RoCMe
 
Zurück