Hi, ich soll zwei positive ganze Zahlen n und k einlesen. Anschließend soll ich zufällig eine Folge von k natürlichen Zahlen aus der Menge {1, . . . , n} erzeugen. Dabei dürfen auch Zahlen mehrfach vorkommen. Nun soll der Nutzer die Zahlen im Spiel raten können und bei richtigen ZAhel neine MEldung erhalten.
Das versuche ich zu realisieren und habe das Problem, dass ich bei der Ausgabe nicht weiß, welche Zahl richtig geraten wurde, da nur komischer Code herauskommt und ich nicht weiß warum? Zusätzlich bin ich mir auch noch nicht sicher, ob der Algo so stimmt :/
MfG Feras
Das versuche ich zu realisieren und habe das Problem, dass ich bei der Ausgabe nicht weiß, welche Zahl richtig geraten wurde, da nur komischer Code herauskommt und ich nicht weiß warum? Zusätzlich bin ich mir auch noch nicht sicher, ob der Algo so stimmt :/
MfG Feras
Java:
import java.util.Random;
import java.util.Scanner;
public class Mastermind {
public static int[] zufall(int n, int k) {
int[] result = new int[k], set = new int[n + 1];
int rndIndex;
Random rnd = new Random();
for (int i = 0; i <= n; i++) {
set[i] = i;
}
for (int i = 0; i < k; i++) {
rndIndex = rnd.nextInt(n + 1 - i);
result[i] = set[rndIndex];
set[rndIndex] = set[n - i];
}
return result;
}
public void prüfen(int[] eingabe, int[] result, int k) {
for (int counter = 0; counter < k; counter++) {
if (eingabe[counter] == result[counter]) {
System.out.println("An der Stelle: [ " + (counter + 1)
+ "] war die Zahl: " + eingabe + " richtig ");
}
}
}
public static void main(String[] args) {
Mastermind spiel = new Mastermind();
Scanner input = new Scanner(System.in);
System.out.println("Geben Sie bitte n ein: ");
int n = input.nextInt();
System.out.println("Geben Sie bitte k ein: ");
int k = input.nextInt();
int[] eingabe = new int[k];
System.out.println("Raten Sie Ihre Zahlen: ");
for (int i = 0; i < eingabe.length; i++) {
eingabe[i] = input.nextInt();
}
spiel.zufall(n, k);
spiel.prüfen(eingabe, zufall(n, k), k);
}
}