Java 计数-添加几行,运行它,测试它是否工作,然后重复。在我看来,你已经写了整件事,并期望它第一次起作用。这种情况很少发生。此代码中没有AdollenceIntro()方法。有一个同名的变量。您还没有指出这些太多的代码行中哪一行引发了异常。你应该在你的问题中提供
Java 计数-添加几行,运行它,测试它是否工作,然后重复。在我看来,你已经写了整件事,并期望它第一次起作用。这种情况很少发生。此代码中没有AdollenceIntro()方法。有一个同名的变量。您还没有指出这些太多的代码行中哪一行引发了异常。你应该在你的问题中提供,java,exception,nosuchelementexception,Java,Exception,Nosuchelementexception,计数-添加几行,运行它,测试它是否工作,然后重复。在我看来,你已经写了整件事,并期望它第一次起作用。这种情况很少发生。此代码中没有AdollenceIntro()方法。有一个同名的变量。您还没有指出这些太多的代码行中哪一行引发了异常。你应该在你的问题中提供堆栈跟踪和相关的方法,可能没有其他内容。对不起--我的意思是“变量”而不是“方法”。更改了我问题的内容以使其更清楚。但你仍然没有添加堆栈跟踪。也许这样更好,基于以下内容,在main中创建一次Scanner对象,并在main末尾将其关闭,而不是在
计数-添加几行,运行它,测试它是否工作,然后重复。在我看来,你已经写了整件事,并期望它第一次起作用。这种情况很少发生。此代码中没有
AdollenceIntro()
方法。有一个同名的变量。您还没有指出这些太多的代码行中哪一行引发了异常。你应该在你的问题中提供堆栈跟踪和相关的方法,可能没有其他内容。对不起--我的意思是“变量”而不是“方法”。更改了我问题的内容以使其更清楚。但你仍然没有添加堆栈跟踪。也许这样更好,基于以下内容,在main中创建一次Scanner对象,并在main末尾将其关闭,而不是在nextStoryLine方法中重新打开和关闭系统。。。只是一个thought@RAZ_Muh_Taz不仅仅是更好-必要的。事实上,我正在我的答案中加入这一点:)
//import java.util.HashMap;
import java.util.Scanner;
public class ChooseYourAdventure {
//private static HashMap<String, Storyline> stories = new HashMap<String, Storyline>();
private static Storyline death = new Storyline(0, 0, 0, Storylines.deathText, null, null);
// adolescence
private static Storyline glue = new Storyline(0, -1, 0, Storylines.glueText, null, null);
private static Storyline befriendDavid = new Storyline(0, 3, 2, Storylines.befriendDavidText, null, null);
private static Storyline dinosaurIsland = new Storyline(0, 1, 1, Storylines.dinosaurIslandText, null, null);
private static Storyline buildCastle = new Storyline(0, 3, 2, Storylines.buildCastleText, null, null);
private static Storyline terrorize = new Storyline(0, 0, 0, Storylines.terrorizeText, befriendDavid, glue);
private static Storyline comply = new Storyline(0, 0, 0, Storylines.complyText, buildCastle, dinosaurIsland);
private static Storyline adolescenceIntro = new Storyline(0, 0, 1, Storylines.adolescenceIntroText, comply, terrorize);
// infancy
private static Storyline sleepItOff = new Storyline(0, -2, 0, Storylines.sleepItOffText, null, null);
private static Storyline cryMore = new Storyline(0, 3, 1, Storylines.cryMoreText, null, null);
private static Storyline cooperate = new Storyline(0, 5, 0, Storylines.cooperateText, null, null);
private static Storyline screamLouder = new Storyline(0, 0, 0, Storylines.screamLouderText, death, death);
private static Storyline moneyIssues = new Storyline(0, -2, 0, Storylines.moneyIssuesText, cryMore, sleepItOff);
private static Storyline cry = new Storyline(0, -2, 0, Storylines.cryText, cooperate, screamLouder);
private static Storyline birth = new Storyline(0, 0, 0, Storylines.birthText, moneyIssues, cry);
public ChooseYourAdventure()
{
}
public static void main(String[] args)
{
ChooseYourAdventure cyaGame = new ChooseYourAdventure();
Character player = new Character();
System.out.println("\n-----| CHAPTER 1: INFANCY |-----\n");
cyaGame.playStoryline(birth, player);
if(player.checkIsDead() == true)
{
return;
}
System.out.println("\n\n-----| CHAPTER 2: ADOLESCENCE |-----\n");
player.setAge(4);
cyaGame.playStoryline(adolescenceIntro, player);
System.out.println("\n\n-----| CHAPTER 2: YOUNG ADULTHOOD |-----\n");
System.out.println("\n\n-----| CHAPTER 2: ADULTHOOD |-----\n");
System.out.println("\n\n-----| CHAPTER 2: OLD AGE |-----\n");
}
public void playStoryline(Storyline story, Character p)
/**
* display text,stats
* call nextStoryLine
*/
{
p.addHappiness(story.getHappinessChange());
p.addMeaning(story.getMeaningChange());
System.out.println("Current age: " + p.getAge());
System.out.println("\nHappiness level: " + p.getHappiness());
System.out.println("Meaning level: " + p.getMeaning() + "\n");
System.out.println(story.getText());
p.addAge(story.getAgeChange());
nextStoryline(story, p);
}
public void nextStoryline(Storyline story, Character p)
{
if(story.getOption1() == null) // end of chapter
{
return;
}
else if(story.getOption1().equals(death)) // end of game
{
p.setIsDead(true);
System.out.println(death.getText());
return;
}
else
{
System.out.println("\nSelect your option by typing \"1\" or \"2.\"");
Scanner scr = new Scanner(System.in);
String answer = scr.nextLine();
if(answer.equals("1"))
{
System.out.println("\n-------\n");
playStoryline(story.getOption1(), p);
}
else if(answer.equals("2"))
{
System.out.println("\n-------\n");
playStoryline(story.getOption2(), p);
}
else
{
System.out.println("Invalid input; please try again");
System.out.println("\n-------\n");
nextStoryline(story, p);
}
scr.close();
}
}
// public static void printStoriesInfo()
// {
// System.out.println("number of stories: " + Storyline.numberOfStories);
// System.out.println("\n-------\n");
// System.out.println("entry set: " + stories.entrySet());
// System.out.println("\n-------\n");
// System.out.println("keys: stories.keySet() = " + stories.keySet());
// System.out.println("\n-------\n");
// System.out.println("text:");
// for(Storyline s : stories.values())
// {
// System.out.println(s.getText());
// }
// }
}
Scanner scr = new Scanner(System.in);
String answer = scr.nextLine();
...
scr.close();
Scanner scr = new Scanner(System.in);
if (scr.hasNextLine())
{
String answer = scr.nextLine();
...
}
scr.close();