import java.util.Scanner;
import java.util.ArrayList;
public class hangman {
public static void ttt(String inputWord) {
int wordLength = inputWord.length();
String blanks = "";
for (int i = 0; i < wordLength; i++) {
blanks = blanks.concat("_ ");
}
// System.out.print(wordLength);
System.out.println(blanks);
int points = 0;
int counter = 0;
ArrayList<String> usedChars = new ArrayList<String>();
while (points < wordLength) {
Scanner reader = new Scanner(System.in);
System.out.println("Guess: ");
String guess = reader.next();
// int checker = 0;
// for(int k = 0; k < usedChars.size(); k++) {
// if(usedChars.get(k) != guess) {
// checker = checker + 1;
// }
// else {}
// }
// if(checker == usedChars.size()) {
for (int i = 0; i < wordLength; i++) {
if (guess == inputWord.substring(i, i + 1)) {
points = points + 1;
usedChars.add(guess);
System.out.println("hit"); // this is me trying to see if
// this part is working
} else {
}
}
System.out.println("Used letters: " + usedChars);
// }
// else {
// System.out.print("Sorry, that letter has already been used");
// }
counter = counter + 1;
if (counter == 5) {
points = wordLength;
}
}
System.out.println("Game over");
}
public static void main(String[] args) {
ttt("to");
}
}
不要担心已注释掉的代码,只是我试图阻止重复猜测,但更重要的是我让其余的代码工作更重要第一
无论如何,我的代码中唯一似乎正在工作的部分是对应部分。你可以自己尝试一下,但看起来所有这一切都需要5次猜测(5种生命,随机的)和打印游戏。
编辑:事后我需要重新审视那个反驳部分,因为它只会因错误的猜测而增加
我注意到的第一件事是我的阵列无法正常工作。它并不是.add()就像我要求它添加我的猜测一样。 (来源:https://beginnersbook.com/2013/12/java-arraylist-add-method-example/)
然后,更严重的代码问题甚至无法记录正确的猜测:/
我开始在我学校的java课程中编写代码并决定自己尝试这个以获得乐趣,任何帮助都将不胜感激! :P
答案 0 :(得分:0)
更改以下布尔表达式
guess == inputWord.substring(i, i + 1)
到
guess.equals(inputWord.substring(i, i + 1))
因为guess是一个String对象。使用&#39; ==&#39;运算符只会比较参考值,而不是值。
您也可以使用
String guess = reader.nextLine();
而不是
String guess = reader.next();