因此,在我上大学的第一年,我的圣诞节项目需要使用if语句制作一个基本的游戏,我选择了一个文本冒险,但我是一个新手我选择写出每个打印出来:
System.out.println("You approach the two cupboards one on the right and one on the left.\nWhich one will you inspect?");
System.out.println("Please press 1 to inspect the right cupboard or 2 to press the left cupboard.");
int Action1 = 0;
while(Action1 !=1 && Action1!=2){//Checking to make sure no one puts in a number thats not 1 or 2
Action1 = in.nextInt();//Start of Player choice
if( Action1 == 1)
{
System.out.println("In the right cupboard you find a note.\nUpon reading the note it says:");
System.out.println("Hello" + " " + name + " " + "you're probably wondering why you woke up in this kitchen whith driend blood on your shirt unable to rememeber anything.\nPretty understandable. However, you're a part of my game now and I expect you to play by the rules. I'm waiting for you in the attic, if you can get here in one piece I'll reveal all.\n Ciao");
Enter = in.nextLine();
System.out.println("After reading the note you check the next cupboard.");
System.out.println("It contains a small key.\nFar too small for any of the locks in the kitchen, you keep it and move on.");
Enter = in.nextLine();
}
但是现在我已经度过了夏天,我试图自己学习一些编程,以免生锈,我认为回到我的游戏并不是一个好主意。通过在文本文件中嵌入文本来清理它,但是有一个问题,我完全不知道如何允许用户按照自己的步调推进文本,目前所有文本都出现在屏幕上,看起来有些不和谐。我将包含一些示例代码,以防有帮助
Scanner in = new Scanner(System.in);
FileReader file = new FileReader("C:/Users/jamie/Desktop/TextAdventure/TextFiles/Opening.txt");
BufferedReader reader = new BufferedReader(file);
String text = ""; //string to hold the text in the text file
String line = reader.readLine();
while (line != null)
{
text += line+"\n";
line = reader.readLine();
}
System.out.println(text);
我更喜欢在正确的方向上轻推而不是完整的示例,因为我想自己弄明白,但是一点帮助会非常感谢!
答案 0 :(得分:0)
Type Writer方法:
String filename = "file.txt";
List<String> lines = new ArrayList<String>();
try (BufferedReader br = new BufferedReader(new FileReader(filename)))
{
String str;
while ((str = br.readLine()) != null)
{
lines.add(str);
}
}
catch (IOException ioe)
{
//handle errors
}
while (lines.size() > 0)
{
//we know that lines is more than 0 so remove the first element
String nextLineOut = lines.remove(0);
for (int charIndex = 0; charIndex < nextLineOut.length(); charIndex++)
{
System.out.print(nextLineOut.charAt(charIndex));
try
{
//every time a character is printed to the console sleep for 50 milliseconds
Thread.sleep(50);
}
catch (InterruptedException ie)
{//handle errors
}
}
//we have reached end of line so print out a new line
System.out.print(System.lineSeparator());
}
打印单行并等待x时间方法。替换
中的代码while(lines.length() > 0)
{
}
与
String nextLineOut = lines.remove(0);
System.out.println(nextLineOut);
try
{
//get amount of characters in the next line multiply by 50 to get a pause of x milliseconds per line
Thread.sleep(nextLineOut.length() * 50);
}
catch (InterruptedException ie)
{//handle errors
}