【发布时间】:2014-03-31 17:45:13
【问题描述】:
我是对编程完全陌生,我必须用 Java 完成一些任务(我正在使用 Eclipse)。这是一个刽子手游戏。我的代码如下。我编写了一个基于控制台的程序,该程序基本上可以工作(计算生命而不是绘制刽子手图形)。
我认为这个问题对大多数人来说似乎很简单,但我非常感谢您的帮助。
我正在尽力在网上寻找答案,但作为一个完全新手,很难知道从哪里开始。我真的很想知道我是否走在正确的轨道上,这样我就不会浪费太多时间。
我应该(并且想要!)自己做这件事,所以理想情况下,我想知道应该关注什么。
我的问题是:
- 我现在需要创建一个 GUI(我以前从未做过): 我已经编写的这段代码有多大用处?一旦我开始使用 GUI 创建游戏,一切都会完全不同吗?
- 我使用
StringBuffer来存储之前猜到的字母。我 想要搜索这个以显示包含所有 以前猜到的字母填写(就目前而言,它只打印 在所有其他字母都被遮盖的情况下排除当前的猜测)。就是它 可能吗?
public static void main(String[] args) {
Scanner myScanner = new Scanner(System.in);
StringBuffer buffer = new StringBuffer();
String secretWord;
int secretWordLength;
int position;
int livesLost = 0;
int totalLives = 10;
int lettersRemaining;
boolean guessInWord;
char guess;
StringBuffer prevGuessedLetters;
//prompt user to enter a word and set as an instance of the secretWord variable
System.out.println("Enter a word:");
secretWord = myScanner.next();
//determine the length of the word entered
secretWordLength = secretWord.length();
System.out.println(secretWordLength);
lettersRemaining = secretWordLength;
for (position = 0; position < secretWordLength; position++) {
System.out.print("*");
}
System.out.println();
//loop starts
while (lettersRemaining > 0 && livesLost < 10) {
//prompt user to guess a letter
System.out.println("Guess a letter:");
guess = myScanner.findWithinHorizon(".", 0).charAt(0);
//check if the letter guessed is in the secretWord
guessInWord = (secretWord.indexOf(guess)) != -1;
if (guessInWord == false) {
livesLost++;
System.out.print("Sorry, you have lost a life. You still have ");
System.out.print(totalLives -= livesLost);
System.out.println(" life/lives left. Keep trying.");
} else {
System.out.println("That was a good guess, well done!");
for (position = 0; position < secretWordLength; position++) {
if (secretWord.charAt(position) == guess) {
System.out.print(guess);
lettersRemaining--;
} else {
System.out.print("*");
}
}
}
System.out.println();
prevGuessedLetters = buffer.append(guess);
System.out.print("Previously guessed letters: ");
System.out.println(prevGuessedLetters);
System.out.print("Letters remaining: ");
System.out.println(lettersRemaining);
}
if (livesLost == totalLives) {
System.out.println("Sorry, you lose!");
} else {
System.out.print("Well done, you win! The word was ");
System.out.println(secretWord);
}
}
【问题讨论】:
标签: java user-interface stringbuffer