initial commit

This commit is contained in:
Marc Koch 2020-04-07 15:31:18 +02:00
commit 1f91880131
3 changed files with 144 additions and 0 deletions

11
Woerter.csv Normal file
View File

@ -0,0 +1,11 @@
Weihnachtsmann
Atmosphäre
Gymnastik
Rhythmus
Metapher
Arbeitsunfähigkeitsbescheinigung
Haftpflichtversicherung
Galionsfigur
Jackett
Zucchini
Rückgrat
1 Weihnachtsmann
2 Atmosphäre
3 Gymnastik
4 Rhythmus
5 Metapher
6 Arbeitsunfähigkeitsbescheinigung
7 Haftpflichtversicherung
8 Galionsfigur
9 Jackett
10 Zucchini
11 Rückgrat

View File

@ -0,0 +1,54 @@
package gfn.marc;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Scanner;
import java.util.ArrayList;
public class CSVDatei{
// Attribute
private String pfad;
private String dateiname;
// Konstruktor
public CSVDatei(String pfad, String dateiname) {
this.pfad = pfad;
this.dateiname = dateiname;
}
// Methode: lese()
public ArrayList<String> lese() throws FileNotFoundException {
String pfadname = this.pfad + this.dateiname;
File csvDatei;
// neues FileObjekt erstellen
csvDatei = new File(pfadname);
if (csvDatei.exists()) {
Scanner eingabe;
// neues Scanner-Objekt erstellen
eingabe = new Scanner(csvDatei);
// Auslesen der Daten in einer Schleife und Ablegen in einer ArrayList
ArrayList<String> ausgabe = new ArrayList<>();
int i = 0;
while(eingabe.hasNext()){
String zeile = eingabe.next();
ausgabe.add(zeile);
i++;
}
// Verbindung schliessen und ArrayList zurückgeben
eingabe.close();
return ausgabe;
}
return null;
}
}

79
src/gfn/marc/hangman.java Normal file
View File

@ -0,0 +1,79 @@
package gfn.marc;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Scanner;
public class hangman {
public static void main(String[] args) throws IOException {
Scanner scanner = new Scanner(System.in);
// CSV einlesen
CSVDatei csv = new CSVDatei("", "Woerter.csv");
ArrayList<String> woerter = csv.lese();
// Wort per zufall auswählen
StringBuilder wort = new StringBuilder(woerter.get((int) (Math.random() * (woerter.size() - 1))));
StringBuilder wortLowerCase = new StringBuilder(wort.toString().toLowerCase());
// Zwei Masken erzeugen
StringBuilder maske = erzeugeMaske(wort.toString());
StringBuilder maskeVorlage = erzeugeMaske(wort.toString());
System.out.println(wort);
System.out.println(maske.toString());
int zaehler = wort.length() + 3;
while (!wortLowerCase.toString().equals(maskeVorlage.toString()) && zaehler != 0) {
System.out.println(zaehler == wort.length() + 3 ? "Bitte raten Sie einen Buchstaben!" + "| Versuche: " + zaehler :
"Bitte raten Sie einen weiteren Buchstaben" + "| Versuche: " + zaehler);
// Eingabe erfassen und verifizieren
String eingabe = "";
while (true) {
eingabe = scanner.next().trim().toLowerCase();
if (!eingabe.matches("[A-Za-z]{1}")) {
System.err.println("Sie dürfen nur einen einzelnen Buchstaben eingeben! (z.B: \"M\" oder \"m\")");
} else {
break;
}
}
// Eingabe verarbeiten
while (wortLowerCase.indexOf(eingabe) != -1) {
maske.replace(wortLowerCase.indexOf(eingabe), (wortLowerCase.indexOf(eingabe) + 1),
String.valueOf(wort.charAt(wortLowerCase.indexOf(eingabe))));
wortLowerCase.replace(wortLowerCase.indexOf(eingabe), (wortLowerCase.indexOf(eingabe) + 1), "*");
}
// Zaehler herunterzählen
zaehler--;
// Maske ausgeben
System.out.println(maske.toString());
}
// Ausgabe: Spiel gewonnen / verloren
if (zaehler == 0) {
System.out.println("Sie haben verloren!");
} else {
System.out.println("Sie haben gewonnen!");
}
}
public static StringBuilder erzeugeMaske(String wort) {
StringBuilder maske = new StringBuilder(wort.length());
for (int i = 0; i < wort.length(); i++) {
maske.append("*");
}
return maske;
}
}