i have to think a 12 letter word and the computer has to guess the word.
我有一个字母A到Z的arraylist。我让电脑随机选一个字母,如果字母在单词中,我必须把字母放在索引处。但如果这封信必须在索引2和8处怎么办。how could i do that?
提示非常有用。
!!如果计算机猜到单词中的一个字母,我在相应的索引处设置该字母i输入2,例如
正确知道它只将信件放在一个索引上然后删除了这封信(因为它只能给那封信一次。我使用的是12个字母。
private Scanner sc;
private ArrayList<Character> letters;
private int answer;
private char randL;
private char ch;
private int wrongG = 0;
private int wrongA = 0;
private int randNum;
private StringBuilder hiddenW = new StringBuilder("............");
private boolean match;
public void gameComputer() {
for (int i = 0; i < 26; i++) {
ch = (char) ('A' + i);
letters.add(ch);
}
while (wrongA < 10) {
randNum = (int) (Math.random() * letters.size());
randL = letters.get(randNum);
System.out.println("De computer raadt een " + randL
+ ". Op welke plaats(en) staat die letter?");
answer = sc.nextInt();
for (int ii = 0; ii < hiddenW.length(); ii++) {
if (answer > -1 && answer < 12) {
hiddenW.setCharAt(answer, randL);
match = true;
}
}
if (answer == 100) {
match = false;
}
if (match) {
System.out.println(hiddenW);
System.out.println("Aantal fouten: " + wrongA);
}
if (!match) {
wrongA = wrongA + 1;
System.out.println("Aantal fouten: " + wrongA);
}
if (wrongA == 10) {
System.out.println("you couldn't guess the word");
break;
}
letters.remove(randNum);
}
}
输出:
the computer guessed O. Op welke plaats(en) staat die letter?
2 8
..O.........
Aantal fouten: 0
the computer guessed I. Op welke plaats(en) staat die letter?
..O.....I...
Aantal fouten: 0
the computer guessed K. Op welke plaats(en) staat die letter?
我想把这封信放在多个指数上
就像计算机猜到A
我想键入2和8并将letter A
设置为索引2和8
答案 0 :(得分:0)
答案 1 :(得分:0)
如果您希望能够提供多个索引而不是一个索引,请使用sc.nextLine()
而不是sc.nextInt()
并编写以逗号分隔的索引(或者如果您鄙视逗号则使用其他内容) - 例如&#34; 2,8&#34 ;.然后,您可以使用charAt
读取整个字符串,并遍历整个字符串或您喜欢的任何其他方式。