我为我的java hang man游戏制作了一个算法,它将用户猜测添加到一个数组中,该数组将猜测与单词中的字母相匹配。如果答案是正确的,它会将字母添加到与单词中相同位置的arraylist猜测中。方法完成后由于某种原因,答案总是返回错误。
public class HangMan
{
public final int GAME=9;
public void Hangman()
{
words();
}
String nerd="";
public void words()
{
Scanner in = new Scanner(System.in);
Random randomgenerator =new Random();
int random = randomgenerator.nextInt(4);
String myArray[]={"albatross","cat","mitosis","computer","coding"};
nerd=myArray[random];
//get length of word
int length=nerd.length();
//create hangman
System.out.println(" ------");
System.out.println(" |");
System.out.println(" |");
System.out.println(" |");
System.out.println(" |");
System.out.println("____");
System.out.println("Guess a letter!");
//create dashes
for(int z=0;z<length;z++)
{
System.out.print("_");
}
}
public void check()
{
ArrayList<String>guesses=new ArrayList<String>();
//Inputs a scanner
Scanner in = new Scanner(System.in);
// pre condition:if player guess equals a char in nerd
String guess1=in.nextLine();
char guess=guess1.charAt(0);
for(int i=0;i<nerd.length();i++)
{
}
if(guess==nerd.charAt(z))
{
System.out.println("Correct");
System.out.println("Your word so far");
System.out.print(guesses);
guesses.set(z, guess+"");
System.out.println("You have");
System.out.print(nerd.length()-z);
System.out.print("guesses left");
}
//pre condition: if the guess is wrong
else
{
System.out.println("Wrong");
System.out.println("Your word so far");
System.out.print(guesses);
System.out.println("You have");
System.out.print(nerd.length()-z);
System.out.print("guesses left");
}
}
答案 0 :(得分:0)
您正在迭代i
,但您正在尝试将guess
与索引z
处的字符进行比较。我不认为你的代码格式正确,但这肯定是个问题。
顺便说一句,你可能想要使用String方法contains()
而不是使用你的循环