【发布时间】:2016-05-24 20:22:50
【问题描述】:
我正在做这个刽子手项目,我快完成了,但我无法让输出显示所有正确的字母来代替下划线,而是只显示刚刚输入的正确字母.请帮忙。
import java.util.Random;
public class HangManGames
{
public static int i;
public static int errors = 0;
public static String wordList[] = {"alabama","alaska","arizona","arkansas","california","colorado","connecticut","delaware","florida","georgia","hawaii","idaho","illinois","indiana","iowa","kansas","kentucky","louisiana","maine","maryland","massachusetts","michigan","minnesota","mississippi","missouri","montana","nebraska","nevada","new hampshire","new jersey","new mexico","new york","north carolina","north dakota","ohio","oklahoma","oregon","pennsylvania","rhode island","south carolina","south dakota","tennessee","texas","utah","vermont","virginia","washington","west virginia","wisconsin","wyoming"};
public static boolean guessLetter;
public static String mysteryWord;
public static int mysteryWordLength;
public static int remainingLetters;
StringBuffer buffer = new StringBuffer();
public static void Start()
{
System.out.println(" _______ ");
System.out.println(" | |");
System.out.println(" |");
System.out.println(" |");
System.out.println(" |");
System.out.println(" |");
System.out.println(" |");
System.out.println("_____|_____ ");
}
public static void Error1()
{
System.out.println(" _______ ");
System.out.println(" | |");
System.out.println(" | ( )");
System.out.println(" | ");
System.out.println(" |");
System.out.println(" |");
System.out.println(" |");
System.out.println("_____|_____ ");
}
public static void Error2()
{
System.out.println(" _______ ");
System.out.println(" | |");
System.out.println(" | ( )");
System.out.println(" | |");
System.out.println(" | |");
System.out.println(" | |");
System.out.println(" |");
System.out.println("_____|_____ ");
}
public static void Error3()
{
System.out.println(" _______ ");
System.out.println(" | |");
System.out.println(" | ( )");
System.out.println(" | |");
System.out.println(" | |");
System.out.println(" | |");
System.out.println(" | /");
System.out.println("_____|_____ ");
}
public static void Error4()
{
System.out.println(" _______ ");
System.out.println(" | |");
System.out.println(" | ( )");
System.out.println(" | |");
System.out.println(" | |");
System.out.println(" | |");
System.out.println(" | / \\");
System.out.println("_____|_____ ");
}
public static void Error5()
{
System.out.println(" _______ ");
System.out.println(" | |");
System.out.println(" | ( )");
System.out.println(" | |");
System.out.println(" | /|");
System.out.println(" | |");
System.out.println(" | / \\");
System.out.println("_____|_____ ");
}
public static void Error6()
{
System.out.println(" _______ ");
System.out.println(" | |");
System.out.println(" | ( )");
System.out.println(" | |");
System.out.println(" | /|\\");
System.out.println(" | |");
System.out.println(" | / \\");
System.out.println("_____|_____ ");
}
public static void main(String args[])
{
do{
Random random = new Random();
int index = random.nextInt(50);
mysteryWord = wordList[index];
mysteryWordLength = mysteryWord.length();
remainingLetters = mysteryWordLength;
String result = "";
for (i = 0; i < mysteryWordLength; i++)
result += "_ ";
System.out.println(result);
System.out.println(" ");
while (remainingLetters != 0 && errors < 6) {
if (errors == 0){
System.out.println("");
Start();
System.out.println("");}
else if (errors == 1){
System.out.println("");
Error1();
System.out.println("");}
else if (errors == 2){
System.out.println("");
Error2();
System.out.println("");}
else if (errors == 3){
System.out.println("");
Error3();
System.out.println("");}
else if (errors == 4){
System.out.println("");
Error4();
System.out.println("");}
else if (errors == 5){
System.out.println("");
Error5();
System.out.println("");}
else if (errors == 6){
System.out.println("");
Error6();
System.out.println("");}
System.out.print("Guess a letter:");
char guess = Expo.enterChar();
guessLetter = (mysteryWord.indexOf(guess)) != -1;
if (guessLetter == false) {
System.out.println("Sorry, bad guess");
errors++;
System.out.print(result);
} else {
System.out.println("Great guess!");
for (i = 0; i< mysteryWordLength; i++) {
if (mysteryWord.charAt(i) == guess)
System.out.print(guess);
else {
remainingLetters--;
System.out.print("_");
System.out.print(result.charAt(i));
}
}
}
}
}while(remainingLetters != 0 && errors < 6);
System.out.println();
System.out.println();
if (remainingLetters == 0 && errors <6)
{
System.out.print("YAY! You Win!");
System.out.println("The word was " + mysteryWord);
}else
{
System.out.println("Game Over! You Lose!");
System.out.println("The word was " + mysteryWord);
}
}
}
【问题讨论】:
-
您需要跟踪单词的哪些部分已经被猜到。就像另一个变量
mysteryWordGuessed一样,您不断替换猜测的字母并将其用于输出。