Hi there,
Im busy with a Hangman game.
A strange error keeps me from finishing it. I’ve looked into it but still I don’t get it.
I hope one of you can help me.
Here is the code:
package galgje;
import java.io.IOException;
import java.util.*;
/**
*
-
@author CJ
*/
public class Galgje {/**
-
@param args the command line arguments
*/
public static void main(String[] args) throws IOException {int aantalKeerGeraden = 0;
String geraden;
String letterCheck = “This letter is incorrect!”;
StringBuffer geradenLetters = new StringBuffer();
String hetWoord = “fakkeldrager”;
int lengteWoord = hetWoord.length();String geradenWoord = “”;
String geradenWoord2;for (int i = 0; i<lengteWoord;i++)
{
geradenWoord+=".";
}String galg[] = new String[10];
galg[0] = “\n| \n| \n| \n| \n|_ \n\n";
galg[1] = "_____\n| \n| \n| \n| \n| \n\n";
galg[2] = "_____\n|/ \n| \n| \n| \n| \n\n";
galg[3] = "_____\n|/ |\n| \n| \n| \n| \n\n";
galg[4] = "_____\n|/ |\n| 0\n| \n| \n| _\n\n”;galg[5] = “\n|/ |\n| 0\n| |\n| \n|_ _\n\n";
galg[6] = "\n|/ |\n| 0\n| /|\n| \n|_ \n\n";
galg[7] = "_____\n|/ |\n| 0\n| /|\\n| \n| \n\n";
galg[8] = "_____\n|/ |\n| 0\n| /|\\n| / \n| \n\n";
galg[9] = "_____\n|/ |\n| 0\n| /|\\n| / \\n| _\n\n”;while (aantalKeerGeraden<10)
{
geradenWoord2="";
System.out.println(galg[aantalKeerGeraden]);
System.out.println(geradenWoord + “\n”);
System.out.println("The Letters you have guessed are : " + geradenLetters);
System.out.println(“Enter some characters.”);
Scanner inScan = new Scanner(System.in);
geraden = inScan.next();geradenLetters.append(geraden + ", "); if(hetWoord.indexOf(geraden) != -1) { for (int i = 0; i < hetWoord.length( ); i++) { if( hetWoord.charAt( i ) == geraden.charAt( 0 ) ) geradenWoord2 += geraden.charAt( 0 ); else System.out.println(geradenWoord.charAt(i)); geradenWoord2 += geradenWoord.charAt(i); geradenWoord = geradenWoord2; } hetWoord.indexOf(geraden); System.out.println("Good Guess!!"); System.out.println( geradenWoord ); }else { System.out.println("Wrong Guess :( "); aantalKeerGeraden++; }
}
if (aantalKeerGeraden==9)
{
System.out.println(“YOU’VE LOST!”);
}
if (aantalKeerGeraden<9)
{
System.out.println(“CONGRATULATIONS YOU’VE WON!”);
}
}
} -
When I run this I get an error when guessing a letter.
The strange thing is it doesn’t give an error on every letter.
The letter ‘a’ is throwing an error but the letters q and p.
the error is as followed:
Exception in thread “main” java.lang.StringIndexOutOfBoundsException: String index out of range: 1
at java.lang.String.charAt(String.java:695)
at galgje.Galgje.main(Galgje.java:72)
Java Result: 1
Hope this will clear it up.
Thanks in advanced.