嗨,我是编程新手,我们的任务是制作一个刽子手游戏。现在我面临的问题是猜测。程序猜对了一切,并且工作正常。虽然它不会打印出JTextField
中的字母,或者它会打印出1个字母,但当我猜正确时,上一个字母会被覆盖。
那么,有谁能伸出援助之手呢?
这是我的检查代码:
private class check implements ActionListener {
public void actionPerformed(ActionEvent ae) {
try {
// Grabs the letter from the guessField and converts it into a char which can be used to compare against the word.
guess = guessField.getText();
guessField.setText("");
char guess2 = guess.charAt(0);
String displaySecret = "";
for (int i = 0; i < random.length(); i++)
displaySecret += "*";
//read in a guess
int position = random.indexOf(guess2);
//now position contains the index of guess inside secret, or
//-1 if the guess was wrong
String newDisplaySecret = "";
for (int i = 0; i < random.length(); i++)
if (i == position)
newDisplaySecret += random.charAt(i); //newly guessed character
else
newDisplaySecret += displaySecret.charAt(i); //old state
displaySecret = new String(newDisplaySecret);
wordField.setText(displaySecret);
}
wordField.setText(displaySecret);
到
wordField.setText(wordField.getText()+displaySecret);
假设world字段中的代码用新的值替换了该值,方法声明说它是set
,而不是addText
。
您应该更改初始化显示密码的方式
String displaySecret = "";
for (int i = 0; i < random.length(); i++)
displaySecret += "*";
到
String displaySecret = wordField.getText();
if(displaySecret=NULL){/*case for fist execution*/
displaySecret="";
for (int i = 0; i < random.length(); i++)
displaySecret += "*";
}
这将使你能够记住从一个猜测到另一个猜测的最后一个条目。如果标签已正确初始化,则可以删除整个if语句。
然而,代码中还有另一个问题,即如果同一个字母在随机变量中多次出现,则只能找到第一个字母。
条件:
if(i=position)
应该是
if (guess2 == random.charAt(i))
我已经被这段代码困扰了一段时间,非常感谢您的帮助。因此,基本上我的刽子手代码运行良好,但控制台中的显示,破折号应该反映哪些字母猜对了,哪些字母仍然需要猜对,这是完全错误的。我将在这里发布我的代码。由于时间很长,我将只发布相关的方法。我觉得问题似乎出在显示数组列表上,我无法持续更新它。
我目前正在用java编写一个hangman控制台游戏,到目前为止还没有遇到任何问题。 我现在遇到了一个似乎无法解决的问题。 我有不同单词的数组容易,中等和困难,并根据选择的难度随机从他们得到一个单词。然后我把这个单词转换成*'s,这样玩家就看不到角色了。 然后向用户索要信件,程序会通知用户信件是对还是错。但问题是,如果*在单词中,我似乎无法将*改为字母。例如,如果单词是“蜜蜂”,玩家选择了b,我想
在我的游戏中出现的问题是,当我试图在游戏中插入单词时,它不显示字母,它应该在正确的时候显示字母,如果它是错误的,它应该通过增加刽子手的一部分来惩罚我。 我创建了惩罚函数和函数,当它正确时显示用户输入的字母,请帮助!! 这是我的代码:http://pastebin.com/du98i88G 我认为在pygame中的函数` 中可能存在问题,而不是gameQuit:for event。事件get():i
我是java新手,我正在尝试创建一个基本的刽子手游戏,我已经为这一轮创建了方法,但我一直在创建一个布尔值,该值将使游戏进入下一轮(如果玩家输入了错误的字母,他将失去一次猜测字母的尝试;他可能只会出错10次;如果猜测,他将继续游戏)。我的代码到目前为止,我甚至尝试通过if/else语句排除布尔值,但对我来说它似乎非常愚蠢。任何帮助都是有用的。非常感谢。
OpenNLP API中句子检测类背后使用的逻辑是什么?是: 基于“”进行检测或 最长的空白修剪字符序列或 还有别的 有人能解释一下吗? 另外:解析API中的解析是如何完成的,即使用的逻辑是什么?
我想做一个刽子手游戏。每转一圈,用户猜一个字母。如果他们猜对了,他们可以再猜一次。否则,它们剩余的可用猜测将减少1,猜测的字母将放入一个数组中。 当用户点击零剩余猜测时,程序应该询问他们是否想再次玩。如果他们回答“是”,则应重新启动游戏;如果他们回答“否”,则程序结束。 我遇到的问题是用于猜测的数组,以及重新启动游戏。 此外,程序启动时每隔一段时间都会出错。错误是 线程“main”java中出现异