Я хочу в основном добавить два символа, один из которых # , то есть константа , а другой x , который изменяется после каждого ввода пользователя. Чтобы дать вам представление, я создаю игру по угадыванию слов, в которой есть несколько вариантов, у меня все они работают, за исключением варианта 5 , на котором я застрял, и для которого требуется следующее требование:
Перед каждым предположением программа выводит визуальное представление предела предположения и количества сделанных предположений. Например, если загадочное слово - «кошка», Player2 начинает с 6 предположений, поэтому программа должна отобразить строку из 6 знаков # (представляющих предел как ######). Каждый раз, когда Player2 делает неверное предположение, под знаком # отображается 'x'.
Примечание : программа должна печатать после каждого пользователя ввод, а не после того, как все было введено с помощью сканера.
Когда игрок1 вводит загадочную фразу , игра заканчивается после удвоения длины загадочной фразы
Например: если загадочная фраза Собака , то игра заканчивается после 6 попыток или ввода от player2.
Вот почему выше в требовании написано " если загадочное слово - «кошка», Player2 начинает с 6 догадок "
Переменная" # "или" символ "зависит от удвоенной длины загадочной фразы, поэтому для Например, если загадочное слово - «собака», то этот «#» должен появиться 6 раз
Переменная «x» или «x» зависит от количества неверных предположений, сделанных player2 , например, если загадочное слово - «собака», а player2 угадает, скажем «копать» "тогда после предположения должен появиться" x ", означающий, что он / она сделал неверное предположение. Я просто хочу, чтобы "x" отображался неправильно, ничего больше, пожалуйста
Последнее примечание: Моя программа работает следующим образом: сначала player1 вводит загадочную фразу, а затем выводит список сколько букв во фразе, тогда player2 получит возможность ввести 5 букв, которые сообщают ему / ей, находятся ли буквы в загадочной фразе Затем player2 угадает слово, а затем оператор скажет ему / сразу, если слово правильное или неправильное.
Поэтому я хочу, чтобы "#" сначала появлялось после 5 букв, когда player2 только собирается угадать слово, а не буквы. Затем после каждого предположения, следующего за "x", должен появиться символ "#", в котором указывается сумма для каждого неправильного предположения только для слова
Я прикрепил изображение моего образца ввода / вывода:
Может показаться, что результат после ввода всего, но он должен быть после каждого ввода
MY КОД:
else if (option == 5){
int counter = 1;
int counter2 = 0;
boolean go = true;
for (int i = 0; i < 5; i++){
char letter = keyboard.next().charAt(0);
String r = "";
boolean found = false;
for (int x = 0; x < mysteryphrase.length(); x++){
char n = mysteryphrase.charAt(x);
if (n == letter){
r+=n;
found = true;
}else{
r+="*";
}
}
if (!found){
System.out.println(letter+" is not in the word");
}else{
System.out.println(r);
}
}
while (go){
String phrase = keyboard.next();
if (!phrase.equals(mysteryphrase)){
System.out.println("The mystery word is not "+phrase);
counter++;
counter2++;
}
else if (phrase.equals(mysteryphrase)){
go = false;
counter--;
int points = (mysteryphrase.length()*10-counter*5);
System.out.println("Correct! The mystery word is "+mysteryphrase);
System.out.println("You made "+counter+" incorrect guesses");
System.out.println("You get "+points+" points");
}
if (counter2 == mysteryphrase.length()*2){
go = false;
System.out.println("\n"+"You made "+counter2+" incorrect guesses");
System.out.println("You have no more guesses");
System.out.println("You get 0 points");
System.out.println("You lost the game");
}
}
}