-
Notifications
You must be signed in to change notification settings - Fork 0
/
Message.java
100 lines (89 loc) · 3.79 KB
/
Message.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
import java.util.Scanner;
public class Message {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
displayMessage("Nu ska du få spela ett spel som kallas för Hänga gubben.");
displayMessage("Du har 7 försök på dig att gissa rätt bokstäver till det hemliga ordet.");
displayMessage("Nu börjar spelet!\nLycka till!\n");
String[] words = {"trädgårdsarbete",
"arborist",
"datavetenskap",
"undervattenssim",
"hushållsost",
"färgkritor",
"tangentbord",
"urmakare",
"statsvetare",
"lördagsgodis",
"chokladmuffins",
"kastanjer",
"tyranusarusrex",
"guppfotografi",
"gurkmeja",
"födelsedagsfest",
"mirakel",
"stjärnfall",
"anakonda",
"bergskjedja",
"atmosfären",
"citronmaräng",
"zebraränder",
"encyklopedi",
"organisation"};
String randomWord = selectRandomWord(words).toLowerCase();
char[] theWord = new char[randomWord.length()];
int attempts = 7;
boolean gameWin = false;
String correctGuessedLetters = "";
String incorrectGuessedLetters = "";
for (int i = 0; i < randomWord.length(); i++) {
theWord[i] = '_';
}
while (attempts > 0 && !gameWin) {
displayMessage("Gissa ordet: " + new String(theWord));
displayMessage("Försök kvar: " + attempts);
displayMessage("Bokstäver du har gissat på: " + correctGuessedLetters + incorrectGuessedLetters);
displayMessage("Gissa på en bokstav:");
String guessInput = scanner.next().toLowerCase();
if (guessInput.length() == 1 && Character.isLetter(guessInput.charAt(0))) {
char guess = guessInput.charAt(0);
if (!correctGuessedLetters.contains(String.valueOf(guess))
&& !incorrectGuessedLetters.contains(String.valueOf(guess))) {
boolean letterGuessed = false;
for (int i = 0; i < randomWord.length(); i++) {
if (randomWord.charAt(i) == guess) {
theWord[i] = guess;
letterGuessed = true;
}
}
if (!letterGuessed) {
attempts--;
incorrectGuessedLetters += guess;
displayMessage("\nFelaktig gissning. Försök igen.");
} else {
correctGuessedLetters += guess;
}
if (new String(theWord).equals(randomWord)) {
gameWin = true;
}
} else {
displayMessage("\nDu har redan gissat på denna bokstav.");
}
} else {
displayMessage("\nOBS! Endast 1 bokstav åt gången.");
}
}
if (gameWin) {
displayMessage("Grattis! Du gissade rätt! Ordet är: " + randomWord);
} else {
displayMessage("Tyvärr så har du inga försök kvar. Ordet var: " + randomWord);
}
}
public static String selectRandomWord(String[] words) {
int randomIndex = (int) (Math.random() * words.length);
return words[randomIndex];
}
public static void displayMessage(String message) {
System.out.println(message);
}
}