我正在制作一个类似于刽子手游戏的java程序。
程序首先从我的字符串Array中生成一个随机Word。
然后用户必须输入一个字母。如果Word中有字母,则会询问另一封信,直到玩家输入所有字母为止。
如果用户键入的字母不适合Word,那么该程序应该为名为letterWrong的int变量添加+1。 当letterWrong为2时,图像应该改变。 它的3应该改变 它的4应该改变 当它的5,游戏结束。
这是问题所在: 当我输入一个字母时,程序循环并检查Word中是否包含该字母。如果是的话,程序会显示这封信。
当这封信不符合这个词的时候就会出现问题。因为,我必须确保这个词不包含那个字母,如果它没有,那么我必须在int变量字母中添加一个+1Wrong。问题是+1在循环内。我必须在循环之外。但我无法解决这个问题。
这里是代码:
char word = edittext.getText().charAt(0);
for(int i = 0; i<randomWord.length(); i = i+1){
if(randomWord.charAt(i)==word){
textviewArray[i].setText(""+randomWord.charAt(i));
}
}
最好的方法是,检查单词是否包含该特定字母,如果不存在,那么它应该为int变量添加+1。我这样做的方式之前,它在int变量中添加了超过+1的值,因为它在循环中。
答案 0 :(得分:4)
您可以使用String.contains()
:
String a =String.valueOf(word);
String s = randomWord;
if(s.contains(a)){
//preform actions
...
这会使word
成为一个字符串。我没有编写整个代码,以便为适应留出空间。
答案 1 :(得分:0)
正如Itamar Green所说,您可以使用String.contains()
方法检查randomWord
是否包含该字母。如果确实包含该字母,请显示该字母。如果没有,请递增letterWrong
。
char word = edittext.getText().charAt(0);
if(randomWord.contains(word){
textviewArray[i].setText(""+randomWord.charAt(i));
} else {
letterWrong++;
}
答案 2 :(得分:0)
如果我做对了你可以试试这个:
char word = edittext.getText().charAt(0);
boolean flag = false;
if(randomWord.indexOf(word ) > -1) {
textviewArray[i].setText(""+word);
} else {
++letterWrong;
flag = true;
}
if(flag && letterWrong > 1) {
changeImage();
}