Hallo.
Ich hoffe ich bin nicht im falschen Forum, bin neu hier xD.
Ich arbeite gerade an meiner Facharbeit und programmiere dazu HangMan als Spiel. Funktioniert auch alles gut, nur mein einziges Problem ist, dass wenn man "Tipp" eingibt (um einen Tipp zu bekommen), trotzdem der Buchstabe "T" als Versuch genommen wird. Ich hätte gerne, dass in diesem Fall kein Buchstabe als Versuch genommen wird, aber ich kriege es einfach nicht hin. Ich hoffe ihr könnt mir helfen.
In Zeile 154 bis 156 seht ihr den auszugebenen Tipp.
(Mir ist klar, dass das vllt. nicht die schönste Lösung ist, bin aber noch nicht super fortgeschritten.)
Ich hoffe ich bin nicht im falschen Forum, bin neu hier xD.
Ich arbeite gerade an meiner Facharbeit und programmiere dazu HangMan als Spiel. Funktioniert auch alles gut, nur mein einziges Problem ist, dass wenn man "Tipp" eingibt (um einen Tipp zu bekommen), trotzdem der Buchstabe "T" als Versuch genommen wird. Ich hätte gerne, dass in diesem Fall kein Buchstabe als Versuch genommen wird, aber ich kriege es einfach nicht hin. Ich hoffe ihr könnt mir helfen.
In Zeile 154 bis 156 seht ihr den auszugebenen Tipp.
(Mir ist klar, dass das vllt. nicht die schönste Lösung ist, bin aber noch nicht super fortgeschritten.)
Java:
import java.io.*;
import sum.kern.*;
public class HangMan
{
// Bezugsobjekte
String word,clue;
int option;
PrintWriter p = new PrintWriter(System.out,true);
// Zustandsvariablen
private void clearScreen()
{
System.out.print('\u000C');
}
HangManStufen HangManStufen;
Kategorien Kategorien;
public static void main(String args[])throws IOException, InterruptedException
{
System.out.print('\u000C');
HangMan obj = new HangMan();
HangManStufen lStufe = new HangManStufen(1);
Kategorien lKategorie = new Kategorien(1);
InputStreamReader isr = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(isr);
PrintWriter p = new PrintWriter(System.out,true);
p.println("Willkommen bei Hangman!");
p.println();
Thread.sleep(1500);
p.println("\nFolgende Regeln:\n");
Thread.sleep(1500);
p.println("1. Du kannst alle Buchstaben von A-Z und alle Umlaute eingeben.\n");
Thread.sleep(5000);
p.println("2. Du kannst dir Zeit lassen, es gibt kein Zeitlimit.\n");
Thread.sleep(5000);
p.println("3. Falls du einen Tipp brauchst, kannst du unten einfach 'Tipp' eingeben.\n");
Thread.sleep(5000);
p.println("Das Spiel beginnt in 5 Sekunden automatisch. Viel Spaß!");
Thread.sleep(5000);
obj.clearScreen();
p.println("Gib unten deine Wahl passend zu den folgenden Möglichkeiten ein. \nHinweis: Die zu erratenden Wörter hängen mit dem gewählten Themen zusammen.\n");
p.println();
p.println("1. Informatik");
p.println("2. Computer");
p.println("3. Filme");
p.println("4. Essen");
p.println("5. Allgemein");
p.println("6. Lange Wörter");
int choice = Integer.parseInt(br.readLine());
obj.clearScreen();
String bothwordandclue[] = new String[2];
if(choice == 1)
bothwordandclue = lKategorie.Informatik();
else if(choice == 2)
bothwordandclue = lKategorie.Computer();
else if(choice == 3)
bothwordandclue = lKategorie.Filme();
else if(choice == 4)
bothwordandclue = lKategorie.Essen();
else if(choice == 5)
bothwordandclue = lKategorie.Allgemein();
else if(choice == 6)
bothwordandclue = lKategorie.LangeWoerter();
else
p.println("Falsche Wahl. Bitte wähle eine verfügbare Zahl.");
int counter = 6;
String guessword = bothwordandclue[0];
String wordclue = bothwordandclue[1];
int lengthofword = (int)(Math.round(((double)guessword.length()/2)));
int checkguess = 0;
String a;
String b;
String guesses[] = new String [50];
StringBuffer guessit = new StringBuffer();
for ( int i = 0; i<lengthofword; i++)
guessit = guessit.append("_ ");
guessit.delete((2 * lengthofword)-1,(2 * lengthofword));
int index = guessword.indexOf("|");
while(index >=0)
{
guessit.setCharAt(index, '|');
index = guessword.indexOf("|", index+1);
}
do
{
p.println();
p.println();
p.println("Gib deinen Buchstaben ein.");
if(counter == 6)
lStufe.Hang1();
else if(counter == 5)
lStufe.Hang2();
else if(counter == 4)
lStufe.Hang3();
else if(counter == 3)
lStufe.Hang4();
else if(counter == 2)
lStufe.Hang5();
else if(counter == 1)
{
lStufe.Hang6();
}
String guessletter2 = br.readLine();
String guessletter = guessletter2.toUpperCase();
obj.clearScreen();
for(int i = 0; i<lengthofword; i++)
{
if(guessletter.charAt(0) == guessword.charAt(2*i))
{
guessit.setCharAt(2*i,guessletter.charAt(0));
checkguess=1;
}
}
if(checkguess == 1)
{
p.println("Richtige Wahl. Du hast " + counter + " falsche Wahlen übrig. \n");
p.println(guessit);
}
else
{
counter--;
if(counter == 0)
{
p.println("Falsche Wahl. Du hast den Mann erhängt :(\n");
p.println(guessit);
lStufe.Hang7();
}
else
{
p.println("Falsche Wahl. Du hast " + counter + " falsche Wahlen übrig. \n");
p.println(guessit);
}
}
b = guessletter2;
if(b.equals("Tipp"))
p.println("\nHier ein kleiner Tipp:\n" + lKategorie.clue);
checkguess = 0;
if(counter == 0)
p.println("\nDu hast das Spiel leider verloren\n\nDas gesuchte Wort war " + lKategorie.word);
a = guessit.toString();
if(a.equals(guessword))
{
p.println("\nDu hast das Wort erraten!");
counter = 0;
}
}while(counter>0);
Thread.sleep(5000);
System.out.print('\u000C');
p.println("Das Spiel beginnt in 5 Sekunden von Vorne. \n\nWenn du aufhören möchtest, drücke oben links auf 'Optionen' und dann auf 'Beenden'. \n\nVielen Dank fürs Spielen! ");
Thread.sleep(8000);
System.out.print('\u000C');
HangMan.main(null);
}
}