Liebe Forummitglieder,
ich implementiere ein Spiel. Hierbei geht es darum die gestellte Frage richtig zu bentworten. Der User darf ein Hinweis bekommen als Buchstaben. Hier mal ein Fallbeispiel:
Die Frage lautet: "angenehmer, feiner Geruch.
Die Antwort lautet: "Duft"
Der Spieler bekommt auf Wunsch einen Hinweis in form von Buchstaben. z.B. "D" oder"f"
Diese buchstaben werden vom Antwort-Wort zufällig ausgewählt. Manchmal kommt aber der gleiche Buchstabe wieder.
Ich benötige etwas womit ich es verhindern kann, das die eine Zufallszahl sich wiederholt und somit sich auch der Buchstabe sich wiederholt.
Der Konkrete Fall mit der Zufallszahl ist in der Klasse Aktionen in der Methode buchstabenNehmen()
Ich bitte um eure Hilfe und Unterstützung. Wäre super wenn jemand mir einen Ansatz geben könnte.
VG Kenan
Ich habe drei Klassen: Daten, Aktionen und TestAktionen
Hier die Klasse Daten.
Hier die Klasse Aktionen, wo die Methoden implementiert sind.
Hier die Klasse mit der Main-Methode. Hier habe ich ein Menü drinnen womit ich die jeweiligen Methoden aufrufe.
ich implementiere ein Spiel. Hierbei geht es darum die gestellte Frage richtig zu bentworten. Der User darf ein Hinweis bekommen als Buchstaben. Hier mal ein Fallbeispiel:
Die Frage lautet: "angenehmer, feiner Geruch.
Die Antwort lautet: "Duft"
Der Spieler bekommt auf Wunsch einen Hinweis in form von Buchstaben. z.B. "D" oder"f"
Diese buchstaben werden vom Antwort-Wort zufällig ausgewählt. Manchmal kommt aber der gleiche Buchstabe wieder.
Ich benötige etwas womit ich es verhindern kann, das die eine Zufallszahl sich wiederholt und somit sich auch der Buchstabe sich wiederholt.
Der Konkrete Fall mit der Zufallszahl ist in der Klasse Aktionen in der Methode buchstabenNehmen()
Ich bitte um eure Hilfe und Unterstützung. Wäre super wenn jemand mir einen Ansatz geben könnte.
VG Kenan
Ich habe drei Klassen: Daten, Aktionen und TestAktionen
Hier die Klasse Daten.
Java:
public class Daten {
private String[] fragen = new String[14];
private String[] antworten = new String[14];
public Daten(String[] fragen, String[] antworten) {
this.fragen = fragen;
this.antworten = antworten;
fragen[0] = "Kleinste, aus einem oder mehreren Lauten gebildete Einheit innerhalb einer Wortform";
antworten[0] = "Silbe";
fragen[1] = "angenehmer, feiner Geruch";
antworten[1] = "Duft";
fragen[2] = "nach innen gewölbt";
antworten[2] = "Konkav";
fragen[3] = " Dünner Mensch";
antworten[3] = "Abgemagert";
fragen[4] = "pikante, dickflüssige Soße zum Würzen";
antworten[4] = "Ketchup";
fragen[5] = "mit freudiger Bereitwilligkeit, Vergnügen";
antworten[5] = "Gerne";
fragen[6] = "den Intellekt betreffend; verstandesmäßig, geistig";
antworten[6] = "Intellektuell";
fragen[7] = " Person, die einen Mord begangen hat";
antworten[7] = "Mörder";
fragen[8] = "über das gewohnte Maß hinausgehend";
antworten[8] = "Außergewöhnlich";
fragen[9] = "sich (in einer bestimmten Weise) verhalten, betragen";
antworten[9] = "benehmen";
fragen[10] = "philosophische Disziplin oder Lehre, die das hinter der sinnlich erfahrbaren, natürlichen Welt Liegende, die letzten Gründe und Zusammenhänge des Seins behandelt";
antworten[10] = "metaphysik";
fragen[11] = "Einrichtungsgegenstand, mit dem ein Raum ausgestattet ist";
antworten[11] = "Möbel";
fragen[12] = "für ein Individuum spezifische, relativ konstante Weise des Fühlens, Erlebens, Handelns und Reagierens";
antworten[12] = "Temperament";
fragen[13] = " weder Lust noch Unlust empfindend oder erkennen lassend";
antworten[13] = "gleichgültig";
}
public String[] getFragen() {
return fragen;
}
public void setFragen(String[] fragen) {
this.fragen = fragen;
}
public String[] getAntworten() {
return antworten;
}
public void setAntworten(String[] antworten) {
this.antworten = antworten;
}
}
Hier die Klasse Aktionen, wo die Methoden implementiert sind.
Java:
import java.util.*;
import java.util.ArrayList;
public class Aktionen extends Daten {
Scanner in = new Scanner(System.in);
int i;
// Nehme die gleiche Länge für das Temporäre Array wie das AntwortArray
String[] temp = new String[getAntworten()[i].length()];
int[] sammleZZ = new int[getAntworten()[i].length()];
public Aktionen(String[] fragen, String[] antworten) {
super(fragen, antworten);
}
// Methode: Zeigt Frage von der Stelle i an.
public void frageAnzeigen(int i) {
System.out.println(getFragen()[i]);
}
// Zeige zufälligen Buchstaben vom AntwortenArray.
public int buchstabenNehmen(int i) {
// Nehme die gleiche Länge für das Temporäre Array wie die Länge des Wortes im jeweiligen AntwortArray
String[] temp = new String[getAntworten()[i].length()];
// Zufallszahl
int z;
z = ((int) (Math.random() * getAntworten()[i].length()));
// Packe den char an die gleiche Stelle ins tempArray wie das AntwortArray
temp[z] = String.valueOf(getAntworten()[i].charAt(z));
// Zeige Inhalt vom Array
for (int j = 0; j < temp.length; j++) {
System.out.println(temp[j]);
}
System.out.println("Geben Sie b für einen neuen Buchstaben ein oder l wenn Sie auflösen möchten.");
String entscheidung = in.nextLine();
if (entscheidung.equals("b")) {
buchstabenNehmen(i);
} else if (entscheidung.equals("l")) {
System.out.println("Fertig mit Buchstaben nehmen.");
}
return i;
}
public void aufloesen(int i) {
System.out.println("Geben Sie die Antwort ein.");
String antwort = in.next();
if (antwort.equals(getAntworten()[i])) {
System.out.println("Die Lösung ist korrekt: " + getAntworten()[i]);
} else {
System.out.println("Die Lösung ist falsch. Versuchen Sie es erneut.");
}
}
}
Hier die Klasse mit der Main-Methode. Hier habe ich ein Menü drinnen womit ich die jeweiligen Methoden aufrufe.
Java:
import java.io.ObjectInputStream.GetField;
import java.util.ArrayList;
import java.util.Scanner;
public class TestAktionen {
public static void main(String[] args) {
String[] fragen = new String[14];
String[] antworten = new String[14];
Aktionen ob1 = new Aktionen(fragen, antworten);
Scanner in = new Scanner(System.in);
boolean helper = false;
while (!helper) {
System.out.println("Bitte wählen Sie aus!\n");
System.out.println("1. Spiel beginnen");
System.out.println("2. BuchstabenNehmen");
System.out.println("3. Auflösen");
System.out.println("4. Spiel beenden");
int i = 0;
int menu = in.nextInt();
switch (menu) {
case 1:
if(i <= 13) {
ob1.frageAnzeigen(i);
i++;
}
break;
case 2:
ob1.buchstabenNehmen(i);
break;
case 3:
ob1.aufloesen(i);
break;
case 4: // Bei Auswahl 4, wird das Program beendet.
helper = true;
System.out.println("Das Spiel wurde beendet. ");
break;
default:
// Falls der User eine Zahl außerhalb der Spanne 1-3 eingibt, wird eine
// Fehlermeldung ausgegeben.
System.out.println("Falsche Eingabe! Zahlen nur im Bereich 1-3 möglich");
break;
}
}
}
}