- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
代码尚未完成,但我遇到了一些问题。这是我当前的代码:
public class Engine
{
public static void main(String[] args)
{
String word = JOptionPane.showInputDialog("Player 1! Please enter a word.");
JOptionPane.showMessageDialog(null, "Switch to Player 2. It is time to play hangman!");
char[] letters = word.toCharArray();
String[] underscores = new String[word.length()];
for(int i=0; i<=word.length()-1; i++)
{
underscores[i]="_ ";
}
StringBuilder builder = new StringBuilder();
for (int i=0; i<word.length(); i++)
{
builder.append(underscores[i]);
}
int mistakes = 0;
while(mistakes!=7)
{
String answer = JOptionPane.showInputDialog(null, "Please guess a letter.\n" + "Mistakes = " + mistakes + " of 7!\n\n" + builder.toString() + "\n\n");
char guess = answer.charAt(0);
for(int i=0; i<=word.length()-1; i++)
{
if(guess==letters[i])
{
underscores[i] = answer;
for (int x=0; x<word.length(); x++)
{
builder.append(underscores[x]);
}
}
}
}
}
}
我遇到的问题是 StringBuilder 部分和 .append()
例如,如果单词是“帽子”。将出现一个带有三个下划线的窗口,如下所示:
<小时/>如果我猜“h”,那么它会变成:
_ _ _ h _ _
而不是
h_ _
此外,如果我接下来猜“t”,它会变成:
_ _ _ 小时 _ _ 小时 _ t
它将数组中已更改的元素添加到已存在的数组中。我很确定这是由追加方法引起的,但我不知道任何替代方法。
最佳答案
StringBuilder 的 append
方法将新文本添加到现有文本中。这就是为什么你会得到 _ _ h _ _h_
之类的东西。如果您使用 StringBuilder 是为了避免创建新的字符串对象,那么在附加文本之前,请使用 delete()
方法清除构建器的现有文本,然后附加它。
喜欢
builder.delete(0,builder.length()-1);
for(int x=0;x<words.length();x++) {
builder.append(underscores[x]);
}
编辑:您的理解是正确的,可以在不使用 StringBuilder 的情况下构建这个游戏,请检查下面的代码。
import java.util.Scanner;
class Game {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
String word = null;
char[] letters;
char[] underScores;
char guess;
int found=0;
int mistake=0;
boolean present = false;
System.out.println("Enter the word");
word = s.nextLine();
letters = word.toCharArray();
underScores = new char[letters.length];
for(int i = 0; i<letters.length;i++) {
underScores[i]='_';
}
while(true) {
System.out.println("The word is");
for(int i = 0; i<letters.length;i++) {
System.out.print(underScores[i]);
}
System.out.println("\nEnter a letter");
guess= s.nextLine().charAt(0);
for(int i =0; i<letters.length;i++) {
if(guess==letters[i]) {
underScores[i]=guess;
found+=1;
present=true;
break;
}
}
if(!present) {
System.out.println("the letter is not present");
mistake+=1;
}
if(mistake >=7) {
System.out.println("too many mistakes!! sorry");
break;
}
if(found==letters.length){
System.out.println(word);
System.out.println("you have found the word!!");
break;
}
} //ending while
} //ending main
} //ending Game
关于java - 我正在为我的计算机编程课创建一个初学者刽子手项目。我遇到了一些问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19782019/
我正在制作刽子手游戏。一切正常,我已经准备好用于使游戏失败并为猜测提供 -1 的代码。虽然将它添加到 else 语句时它会重复等于单词的长度并且它也会给出一个猜测——即使它是正确的?我看不出代码有什么
我是一名 Javascript 学生,正在开发我的 Hangman 游戏。我用于显示 secret 单词的正确破折号数量的循环不起作用。每次只显示一个破折号。感谢帮助。谢谢。 $(document).
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 关于您编写的代码问题的问题必须在问题本身中描述具体问题 — 并且包括有效代码 以重现它。参见 SSC
print("Welcome to hangman. Are you ready to have some fun?") def play(): import random List = ["ra
我刚刚开始学习 Java 作为我的第一门编程语言。 在类里面,我们被分配使用 while 和 for 循环制作一个基本的 Hangman 游戏。 到目前为止我有什么 当用户输入第一个猜测时,它确实识别
我是编程新手。我正在做一个经典的刽子手游戏,但我希望它是从节目中猜测一些角色的名字(名字和姓氏)。 我的问题:破折号打印 name 和 surname 之间的空格而不是忽略它,例如: 密语:鲁伯特·吉
我正在尝试创建一个刽子手游戏,其中每个字母都有一个按钮。我用绝对定位和多个 Action 监听器以困难的方式做到了这一点。有什么办法可以用 for 循环同时完成这两个任务吗? 另外,如何使用多态数组实
我是 Java 新手,所以这听起来可能很傻。 我正在尝试从 Java 创建一个基于 GUI 的刽子手游戏。我已经从数组创建了按钮列表,单击时它返回单个字母作为字符。我有要猜测的单词列表,每次按下按钮时
我已经研究这段代码有一段时间了。我尝试了许多不同的方法来查找玩家在随机生成的单词中正确猜测的输入的索引 - 我认为我当前编写的内容应该有效,但我担心我忽略了一个非常简单的错误。事实上,每当我运行代码时
在我的 Hangman 应用程序中,我为用户创建了一组按钮,然后从文件中随机选择 Hangman 应用程序中猜测的单词...该单词使用 JLabel 打印...但是一旦单击按钮时,应用程序会卡住。谁能
我正在为我的 C 课编程编写一个刽子手程序。我似乎不知道如何执行最后一步,即在玩家猜出所有正确的字母后停止游戏。我感觉问题出在播放功能上。 #include #include #inc
用 python 编写一个 Hangman 程序,在传入一个包含多单词字符串和单单词字符串的文件时遇到了一个问题。 文件: 你好棕色狐狸 狗 猫 水 跳跃 #initialize list wordL
所以我在玩这个游戏的特定部分时遇到了问题。这些是我的初始变量: var words = ["sugar","banana","hulk"]; var guessLeft = 12; var wrong
我是一名优秀的程序员,十分优秀!