Hallo,
ich häng grad bei einer - meiner Meinung nach - kleinen Sache, aber ich komme echt nicht weiter...
Ich will Hangman grafisch umsetzen, allerdings muss es vorher erst in der Konsole laufen.
Deswegen habe ich 2 Klassen, die eine ist die ConsoleTest Klasse und die andere das Spiel an sich. Wird später alles weiter ausgebaut. Das gesuchte Wort ist im Moment fest und ist HANGMAN.
Mein Problem im Moment: Ich kann bei richtig eingebenem Buchstabe den "_" nicht ersetzen, dass man sieht, wo man richtig war...
Er malt mir genauso viele "_" wie Hangman Zeichen hat, aber wenn ein richtiges Zeichen eingebenen wurde, ersetzt er es nicht...
Kann mir jemand nen Anstoß geben, wie man das umsetzen könnte?
Danke!
ich häng grad bei einer - meiner Meinung nach - kleinen Sache, aber ich komme echt nicht weiter...
Ich will Hangman grafisch umsetzen, allerdings muss es vorher erst in der Konsole laufen.
Deswegen habe ich 2 Klassen, die eine ist die ConsoleTest Klasse und die andere das Spiel an sich. Wird später alles weiter ausgebaut. Das gesuchte Wort ist im Moment fest und ist HANGMAN.
Mein Problem im Moment: Ich kann bei richtig eingebenem Buchstabe den "_" nicht ersetzen, dass man sieht, wo man richtig war...
Java:
import java.util.Random;
import acm.program.*;
import acm.util.RandomGenerator;
@SuppressWarnings("serial")
public class HangmanGame extends ConsoleProgram{
public String guessedWord = "HANGMAN";
int counter = 8;
public String usedChars = "";
public boolean guess(char charAt) {
char charBig = Character.toUpperCase(charAt);
for (int i = 0; i < guessedWord.length(); ) {
if(guessedWord.charAt(i++) == charBig)
{
counter++;
return true;
}
}
usedChars += charBig;
return false;
}
public String getUsedChars() {
return usedChars;
}
public String getPlaceHolders() {
String Placeholder = "";
for (int i = 0; i < guessedWord; i++) {
Placeholder += usedChars.indexOf( guessedWord.charAt( i ) ) >= 0 ?
guessedWord.charAt( i ) : "_";
}
return Placeholder;
}
public boolean isGameLost() {
if (counter == 0) {
return true;
}
return false;
}
public boolean isGameWon() {
// TODO Auto-generated method stub
return false;
}
public int getGuessesLeft() {
counter--;
return counter;
}
}
Java:
import acm.program.ConsoleProgram;
public class ConsoleTest extends ConsoleProgram {
public void run() {
HangmanGame hangman = new HangmanGame ();
while ( true ) {
String line = readLine (" Guess a letter : ");
println (" Letter is in word : " + hangman.guess (line.charAt(0)));
println (" Word looks like this : " + hangman.getPlaceHolders ());
println("Used Letters: " + hangman.getUsedChars());
if ( hangman.isGameLost ()) {
println (" You lost ");
break ;
}
if ( hangman.isGameWon ()) {
println (" You win.");
break ;
}
println (" Guesses left : " + hangman.getGuessesLeft ());
}
println (" Correct word was : HANGMAN");
}
}
Er malt mir genauso viele "_" wie Hangman Zeichen hat, aber wenn ein richtiges Zeichen eingebenen wurde, ersetzt er es nicht...
Kann mir jemand nen Anstoß geben, wie man das umsetzen könnte?
Danke!