Hallo allerseits,
für ein Hangman-Spiel wollte ich gerne eine Wörterliste importieren und wollte wissen, wie das geht.
für ein Hangman-Spiel wollte ich gerne eine Wörterliste importieren und wollte wissen, wie das geht.
Scanner liste = new Scanner(source: C:\\Users\\Name\\Desktop\\Hilfreiches\\Woerterliste)
Das ist keine gültige Syntax, und falls source ein String sein soll, wird aus dem String gelesen (nicht aus der Datei). Um aus einer Datei zu lesen, kannst Du ein File-Objekt übergeben.Ich hab jetzt.Java:Scanner liste = new Scanner(source: C:\\Users\\Name\\Desktop\\Hilfreiches\\Woerterliste)
Du erzeugst einfach eine Zufallszahl zwischen 0 und der Länge der Liste (excl.) und verwendest diese als Index.Mal was anderes: wie wähle ich randomisiert Wörter aus dieser Liste aus?
public String getRandomWord(List<String> wordList) {
int index = (int)(Math.random() * wordList.size());
return wordList.get(index);
}
private Random rand = new Random();
public String getRandomWord(List<String> wordList) {
int index = rand.nextInt(wordList.size());
return wordList.get(index);
}
Das "source:" fügt IntelliJ ein. Wäre natürlich schlecht, wenn er nicht aus der Liste liest...Andere Lösungen (hab schon geguckt) benutzen ein String-Array.Das ist keine gültige Syntax, und falls source ein String sein soll, wird aus dem String gelesen (nicht aus der Datei). Um aus einer Datei zu lesen, kannst Du ein File-Objekt übergeben.
Du erzeugst einfach eine Zufallszahl zwischen 0 und der Länge der Liste (excl.) und verwendest diese als Index.
Java:public String getRandomWord(List<String> wordList) { int index = (int)(Math.random() * wordList.size()); return wordList.get(index); }
oder mit java.util.Random:
Java:private Random rand = new Random(); public String getRandomWord(List<String> wordList) { int index = rand.nextInt(wordList.size()); return wordList.get(index); }
Das geht auch, dann musst Du aber im Voraus wissen, wie viele Wörter du (maximal) liest. Ansonsten müsstest Du zur Laufzeit ständig neue Arrays erstellen (das erledigt eben z. B. ArrayList für Dich).Andere Lösungen (hab schon geguckt) benutzen ein String-Array.
File woerterDatei = new File("C:\\Users\\Michael\\Documents\\WoerterListe");
try (Scanner sc = new Scanner(woerterDatei)) {
while (sc.hasNext()) {
System.out.println(sc.next()); // oder auch sc.nextLine(), je nachdem
}
}
Da wir nicht wissen, was Du genau probiert hast, ist es schwer zu sagen, aber ja: daran könnte es liegen. Das, was @mihe7 Dir an Code gegeben hat, ist für das Einfügen in einer Klasse gedacht und nicht als Inhalt einer Methode / der main Methode.Die Methoden zur Auswahl eines Random-Wortes hab ich auch mal versucht, aber bin gescheitert. Liegt es daran, dass Methoden immer außerhalb der Main-Methode deklariert werden müssen (d.h. darüber), aber innerhalb der Klasse?
Hier ein von mir gepostetes Beispiel im Forum.Hallo allerseits,
für ein Hangman-Spiel wollte ich gerne eine Wörterliste importieren und wollte wissen, wie das geht.
Danke danke, das hab ich jetzt gelöst. Ich hab jedoch noch eine Frage und zwar, wie bekomme ich es hin, dass er die Buchstaben, die er in dem random Wort gefunden hat, in eine Gruppe Unterstriche schreibt, die so lang ist wie das random Wort.Hier ein von mir gepostetes Beispiel im Forum.
https://www.java-forum.org/thema/pr...n-leveln-in-meinem-spiel.197671/#post-1310276