Так что я в процессе создания небольшой текстовой приключенческой игры. У меня есть только 3 месяца опыта кодирования, но я решил взять этот большой проект с небольшими знаниями по кодированию, которые у меня есть. Я вырезал начало кода, в котором пользователь выбирает атрибуты, потому что это не имеет значения.Выбранный пользователем выбор не запускается, если оператор
Проблема, с которой я столкнулся, возникает, когда пользователю предлагается сделать выбор между "do thing"
и "don't do thing"
. Всякий раз, когда код доходит до этого этапа, ни один из вариантов не будет вызывать out.println
.
Кроме того, я понимаю, что вся игра в switch(YN)
, вероятно, очень неэффективна, но я не знаю другого способа сделать это без написания методов и классов, и я действительно ничего не понимаю, поэтому я Мы будем придерживаться этого метода main
.
import static java.lang.System.*;
import java.io.*;
import java.util.*;
public class TextAdventure{
public static void main(String args[]){
Scanner reader=new Scanner(in);
out.println("Do you wish to continue with these attributes? Y\\N? ");
String answer=reader.next();
answer=answer.toUpperCase();
char YN=answer.charAt(0);
String choice1="",choice1a="";
switch(YN){
case 'N':
out.println("\nThe great game god now smites you so you may select different attributes.\n");
break;
case 'Y':
out.println("\nThis is a placeholder for the game."+
"\ndo don't");
while(!(choice1.equals("do"))&&!(choice1.equals("don't"))){
choice1=reader.next();
choice1=choice1.toLowerCase();
}
if(choice1.equals("do")){
out.println("\nThis is the path for \"do\". What do you do now?"+
"\ndo thing don't do thing");
while(!(choice1a.equals("do thing"))&&!(choice1a.equals("don't do thing"))){
choice1a=reader.next();
choice1a=choice1a.toLowerCase();
}
if(choice1a.equals("do thing")){
out.println("\nYou did thing, and you have tripped and fallen. You are dead.");
break;
}
else if(choice1a.equals("don't do thing")){
out.println("\nYou didn't do thing. Good choice. But the game god smites you out of boredom.");
break;
}
}
else if(choice1.equals("don't"))
out.println("\nThis is the path for \"don't\". The great game god now smites you.\n");
break;
default:
out.println("\nYou must select an available character choice. The great game god now smites you.\n");
break;
}
}
}
Я полностью забыл, что 'nextLine' даже существовал. Я должен использовать это, потому что 'choice 1a = reader.next();' просто сохранит следующую найденную строку, не так ли? – Insederec
Да, вы можете узнать, что, напечатав 'choice1a' после его чтения. – Christian