堆栈 Java 无法按特定顺序打印
Stack in Java not being able to print in specific order
目前我正在做一个应该是反向猜词游戏的项目。
它应该是这样工作的:
Enter a word: (input = cheese)
Your word is: _ _ _ _ _ e
What letter do you guess? (input = s)
用户一直在猜测这个词,直到它被完全拼出。如果用户猜对了该字母,则显示该字母,如果没有猜对,它仍然会被陶醉,如下所示
Your word is: _ _ _ _ _ e
What letter do you guess?
Your word is: _ _ _ _ s e
What letter do you guess?
Your word is: _ _ _ e s e
What letter do you guess?
Your word is: _ _ e e s e
What letter do you guess?
Your word is: _ h e e s e
What letter do you guess?
Your word is: c h e e s e
Gameover!
⚠️ 目前我有一个包含给定单词的所有字母的堆栈,如下所示:⚠️
底部:c h e e s e :Top
我目前有这个代码:
while(guesses < letters.size()){
System.out.print("Your word is: ");
for(int i = 1; i < letters.size(); i++){
System.out.print("_ ");
}
System.out.println(letters.peek() + test);
System.out.println("Score: " + score);
System.out.print("What letter do you guess? ");
char guess = sc.next().charAt(0);
if((Object)guess == letters.peek()){
test += letters.pop();
score++;
}
else{
test += letters.pop();
score--;
}
}
然而它正在打印这个:
Your word is: _ _ _ _ _ e
Score: 0
What letter do you guess?
Your word is: _ _ _ _ se
Score: 0
What letter do you guess?
Your word is: _ _ _ ees
Score: 0
What letter do you guess?
Your word is: _ _ eese
Score: 0
What letter do you guess?
Your word is: _ hesee
Score: 0
What letter do you guess?
Your word is: ceseeh
Score: 0
Gameover!
谢谢。如果需要更多信息,请发表评论并告诉我!
尝试:
if(Character.compare(猜猜, (char) letters.peek())){
.
现有逻辑
.
}
您的代码不完整,所以我无法确定问题出在哪里。为了回答您的问题,我假设问题是 System.out.println(letters.peek() + test);
行打印的单词不正确。
通过执行 test += letters.pop();
,您将 letters.pop()
附加到 test
。
相反,您应该将 letters.pop()
添加到 test
:
test = letters.pop() + test;
目前我正在做一个应该是反向猜词游戏的项目。
它应该是这样工作的:
Enter a word: (input = cheese)
Your word is: _ _ _ _ _ e
What letter do you guess? (input = s)
用户一直在猜测这个词,直到它被完全拼出。如果用户猜对了该字母,则显示该字母,如果没有猜对,它仍然会被陶醉,如下所示
Your word is: _ _ _ _ _ e
What letter do you guess?
Your word is: _ _ _ _ s e
What letter do you guess?
Your word is: _ _ _ e s e
What letter do you guess?
Your word is: _ _ e e s e
What letter do you guess?
Your word is: _ h e e s e
What letter do you guess?
Your word is: c h e e s e
Gameover!
⚠️ 目前我有一个包含给定单词的所有字母的堆栈,如下所示:⚠️
底部:c h e e s e :Top
我目前有这个代码:
while(guesses < letters.size()){
System.out.print("Your word is: ");
for(int i = 1; i < letters.size(); i++){
System.out.print("_ ");
}
System.out.println(letters.peek() + test);
System.out.println("Score: " + score);
System.out.print("What letter do you guess? ");
char guess = sc.next().charAt(0);
if((Object)guess == letters.peek()){
test += letters.pop();
score++;
}
else{
test += letters.pop();
score--;
}
}
然而它正在打印这个:
Your word is: _ _ _ _ _ e
Score: 0
What letter do you guess?
Your word is: _ _ _ _ se
Score: 0
What letter do you guess?
Your word is: _ _ _ ees
Score: 0
What letter do you guess?
Your word is: _ _ eese
Score: 0
What letter do you guess?
Your word is: _ hesee
Score: 0
What letter do you guess?
Your word is: ceseeh
Score: 0
Gameover!
谢谢。如果需要更多信息,请发表评论并告诉我!
尝试: if(Character.compare(猜猜, (char) letters.peek())){ . 现有逻辑 . }
您的代码不完整,所以我无法确定问题出在哪里。为了回答您的问题,我假设问题是 System.out.println(letters.peek() + test);
行打印的单词不正确。
通过执行 test += letters.pop();
,您将 letters.pop()
附加到 test
。
相反,您应该将 letters.pop()
添加到 test
:
test = letters.pop() + test;