我需要一些关于如何对此进行编程的提示,此方法适用于刽子手游戏guessCh
是用户猜到的字母,而secretCh
是秘密字中的字母,它们来自{ {1}}一次一个。但我所需要的不仅仅是while() loop
不工作因为秘密单词由几个字母组成,所以它将从秘密单词中的所有字母中减去点,不应该减去。只有在任何if (guessCh != secretCh)
字母/或秘密字中找不到guessCh
字符时,才应减去-1。
我似乎被困在这上面,我知道这很简单......但是给我一个骨头。我已经花了很多时间在这上面。
secretCh
答案 0 :(得分:4)
您可以对您的秘密中找到的字符执行ArrayList。 然后使用ArrayList
中的.contains(Char c)
方法
一个例子:
ArrayList<Char> secret = new ArrayList<Char>();
secret.add('w');
secret.add('o');
secret.add('r');
secret.add('l');
secret.add('d');
if(secret.contains(new Char('x')) {
System.out.println("Found");
} else {
System.out.println("Not Found");
}
答案 1 :(得分:2)
我认为这可能是家庭作业,所以gtgaxiola的回答可能是老师不想看到的。下面是如何在常规字符数组上实现等效的.contains(),这样您就不必在当前代码中进行太多更改。
char[] secretCh = new char[]{'s', 'e', 'c', 'r', 'e', 't'};
char guessCh = 'e';
boolean found = false;
for(int i = 0; i < secretCh.length; i++) { // loop through each character in the secretCh array
if (secretCh[i] == guessCh) {
found = true;
break;
}
}
if (found)
System.out.println("guessCh is a letter in the secret word.");
答案 2 :(得分:2)
String对象已经内置了此功能。
你真正需要的是这样的:
if(secretStr.indexOf(guessCh) < 0) nTurnsLeft--;
indexOf返回String secretStr中char guessCh的位置索引。如果找不到guessCh,则indexOf返回-1;