parent
807866179e
commit
db9aebd3a5
|
@ -0,0 +1,10 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<classpath>
|
||||
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-18">
|
||||
<attributes>
|
||||
<attribute name="module" value="true"/>
|
||||
</attributes>
|
||||
</classpathentry>
|
||||
<classpathentry kind="src" path="src"/>
|
||||
<classpathentry kind="output" path="bin"/>
|
||||
</classpath>
|
|
@ -0,0 +1,17 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<projectDescription>
|
||||
<name>Semesteraufgabe</name>
|
||||
<comment></comment>
|
||||
<projects>
|
||||
</projects>
|
||||
<buildSpec>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.jdt.core.javabuilder</name>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
</buildSpec>
|
||||
<natures>
|
||||
<nature>org.eclipse.jdt.core.javanature</nature>
|
||||
</natures>
|
||||
</projectDescription>
|
|
@ -0,0 +1,152 @@
|
|||
import java.io.File;
|
||||
import java.io.FileNotFoundException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Scanner;
|
||||
|
||||
public class Hangman {
|
||||
|
||||
static Scanner sc = new Scanner(System.in);
|
||||
|
||||
public static void main(String[] args) throws FileNotFoundException {
|
||||
|
||||
Scanner sc1 = new Scanner(new File("src/words.txt"));
|
||||
|
||||
// Setup
|
||||
ArrayList<String> words = new ArrayList<>();
|
||||
ArrayList<String> wordGuess = new ArrayList<>();
|
||||
while (sc1.hasNext()) {
|
||||
words.add(sc1.nextLine());
|
||||
}
|
||||
|
||||
// Wählt ein zufälliges Wort aus der Dazei
|
||||
String word = words.get((int) (Math.random() * words.size()));
|
||||
char[] wordSplit = word.toCharArray();
|
||||
|
||||
String guess = "";
|
||||
String charUsed = "";
|
||||
int lives = 6;
|
||||
// Zählt wie viele Felder noch frei sind
|
||||
int counter = 0;
|
||||
|
||||
// Schleife läufz solange, wie mehr als 0 Leben vorhanden sind
|
||||
while (lives > 0) {
|
||||
|
||||
// Ausgeben des erratendem Fortschritts
|
||||
System.out.println(getProgress(guess, word, wordSplit));
|
||||
counter = getProgress1(counter, guess, word);
|
||||
|
||||
// Gewinnbedingung
|
||||
if (counter == 0) {
|
||||
System.out.println("Congratulations! You won.");
|
||||
break;
|
||||
}
|
||||
|
||||
System.out.println();
|
||||
System.out.println("Letters used:" + " " + charUsed);
|
||||
System.out.print("Words used: ");
|
||||
for (int i = 0; i < wordGuess.size(); i++) {
|
||||
System.out.print(wordGuess.get(i) + ", ");
|
||||
}
|
||||
System.out.println();
|
||||
|
||||
|
||||
// Eingabe zum Erraten
|
||||
String letter = getInput();
|
||||
|
||||
if (letter.length() == 1) {
|
||||
|
||||
// Überprüfen ob die Eingabe bereits versucht wurde
|
||||
if (charUsed.contains(letter)) {
|
||||
System.out.println("Letter already used. Try again:");
|
||||
continue;
|
||||
}
|
||||
|
||||
charUsed += letter + ", ";
|
||||
|
||||
// Überprüfen ob das Wort den erratenen Buchstaben enthält
|
||||
if (word.contains(letter)) {
|
||||
guess += letter;
|
||||
} else {
|
||||
System.out.println("Wrong! The word doesn't contain the letter " + letter);
|
||||
lives--;
|
||||
}
|
||||
|
||||
// Hangman Figur/Leben und Verlierbedingung
|
||||
System.out.println(showMistakes(lives, word));
|
||||
|
||||
if (lives == 0) {
|
||||
break;
|
||||
}
|
||||
|
||||
} else if (letter.length() == word.length()) {
|
||||
// Gewinnbedingung falls ein Wort geraten wird
|
||||
if(letter.equals(word)) {
|
||||
System.out.println("Congratulations! You won.");
|
||||
break;
|
||||
}
|
||||
// Fügt die falsch geratenen Wörter zu einer ArrayList hinzu
|
||||
else {
|
||||
System.out.println("Wrong! The word " + letter + " is not the correct answer");
|
||||
wordGuess.add(letter);
|
||||
lives--;
|
||||
}
|
||||
System.out.println(showMistakes(lives, word));
|
||||
} else {
|
||||
System.out.println("Ungültige Eingabe\nTry Again!");
|
||||
continue;
|
||||
}
|
||||
}
|
||||
sc.close();
|
||||
sc1.close();
|
||||
}
|
||||
|
||||
// Gibt das Wort mit den bereits erratenen Buchstaben aus
|
||||
public static String getProgress(String guess, String word, char[] wordSplit) {
|
||||
String character = "";
|
||||
for (int i = 0; i < word.length(); i++) {
|
||||
if (guess.contains(String.valueOf(word.charAt(i)))) {
|
||||
character += wordSplit[i] + " ";
|
||||
} else {
|
||||
character += "_ ";
|
||||
}
|
||||
}
|
||||
return character;
|
||||
}
|
||||
|
||||
// Zählt die bereits erratenen Zeichen
|
||||
public static int getProgress1(int counter, String guess, String word) {
|
||||
counter = 0;
|
||||
for (int i = 0; i < word.length(); i++) {
|
||||
if (guess.contains(String.valueOf(word.charAt(i)))) {
|
||||
} else {
|
||||
counter++;
|
||||
}
|
||||
}
|
||||
return counter;
|
||||
}
|
||||
|
||||
public static String getInput() {
|
||||
System.out.print("Enter a letter:\n>>");
|
||||
return sc.nextLine();
|
||||
}
|
||||
|
||||
// Liefert einen String je nach Lebensanzahl
|
||||
public static String showMistakes(int lives, String word) {
|
||||
String result = "";
|
||||
if (lives == 5) {
|
||||
result = "\n\n\n\n\n\n\n___|___";
|
||||
} else if (lives == 4) {
|
||||
result = " |\n |\n |\n |\n |\n |\n |\n___|___";
|
||||
} else if (lives == 3) {
|
||||
result = " _________\n |\n |\n |\n |\n |\n |\n___|___";
|
||||
} else if (lives == 2) {
|
||||
result = " _________\n |/\n |\n |\n |\n |\n |\n___|___";
|
||||
} else if (lives == 1) {
|
||||
result = " _________\n |/ |\n |\n |\n |\n |\n |\n___|___";
|
||||
} else if (lives == 0) {
|
||||
result = " _________\n |/ |\n | O\n | \\|/\n | |\n | / \\\n |\n___|___\nYou lose! The word was "
|
||||
+ word;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,100 @@
|
|||
freedom
|
||||
happiness
|
||||
knowledge
|
||||
success
|
||||
opportunity
|
||||
independence
|
||||
friendship
|
||||
courage
|
||||
honesty
|
||||
loyalty
|
||||
leadership
|
||||
creativity
|
||||
determination
|
||||
justice
|
||||
fairness
|
||||
respect
|
||||
responsibility
|
||||
kindness
|
||||
patience
|
||||
generosity
|
||||
compassion
|
||||
forgiveness
|
||||
gratitude
|
||||
tolerance
|
||||
understanding
|
||||
integrity
|
||||
confidence
|
||||
security
|
||||
safety
|
||||
prosperity
|
||||
wealth
|
||||
prosperity
|
||||
abundance
|
||||
prosperity
|
||||
richness
|
||||
affluence
|
||||
success
|
||||
victory
|
||||
triumph
|
||||
glory
|
||||
honor
|
||||
fame
|
||||
reputation
|
||||
respect
|
||||
admiration
|
||||
esteem
|
||||
awe
|
||||
reverence
|
||||
dignity
|
||||
prestige
|
||||
celebrity
|
||||
honor
|
||||
glory
|
||||
distinction
|
||||
excellence
|
||||
achievement
|
||||
merit
|
||||
worth
|
||||
value
|
||||
importance
|
||||
significance
|
||||
magnitude
|
||||
gravity
|
||||
consequence
|
||||
consequence
|
||||
effect
|
||||
impact
|
||||
influence
|
||||
power
|
||||
authority
|
||||
control
|
||||
command
|
||||
sway
|
||||
domination
|
||||
leadership
|
||||
supervision
|
||||
management
|
||||
direction
|
||||
guidance
|
||||
tutelage
|
||||
instruction
|
||||
teaching
|
||||
education
|
||||
learning
|
||||
study
|
||||
research
|
||||
investigation
|
||||
inquiry
|
||||
examination
|
||||
analysis
|
||||
appraisal
|
||||
evaluation
|
||||
assessment
|
||||
judgement
|
||||
discernment
|
||||
perception
|
||||
understanding
|
||||
insight
|
||||
wisdom
|
||||
enlightenment
|
Loading…
Reference in New Issue