import java.io.FileOutputStream; import java.io.IOException; import java.io.ObjectOutputStream; import java.io.Serializable; public class Assignment1 extends AMVsetup implements Serializable { private static final long serialVersionUID = 1L; static class Node implements Serializable { private static final long serialVersionUID = 6265978352799255699L; public String question; public Node True; public String name; public Node False; public int parentID; public int ID; public char fromWhichBranch; public char questionAnswer; public void branch() { if(question != null) { input = terminal.readString(question + "\n"); if (input.contains("true")) True.branch(); else False.branch(); } else if(question == null) { input = terminal.readString("Is it a/an " + name + "?\n"); if(input.contains("true")) { terminal.println("I win!"); } else { terminal.println("I give up.\n"); newName = terminal.readString("What were you thinking of?\n"); newQuestion = terminal.readString("What is a question that you " + "would answer no to " + newName + ", but " + "yes to " + name + "?\n"); True = new Node(); True.name = name; True.ID = 10; True.parentID = 5; True.questionAnswer = 'A'; True.fromWhichBranch = 'T'; False = new Node(); False.name = newName; False.ID = 11; False.parentID = 6; False.questionAnswer = 'A'; False.fromWhichBranch = 'F'; name = null; question = newQuestion; terminal.println(newName + " has been added to the game."); } } } } public static void main(String[] args) throws Exception { Node first = new Node(); first.question = "Is it an animal?"; first.parentID = -1; first.ID = 0; first.questionAnswer = 'Q'; first.fromWhichBranch = 'Y'; first.True = new Node(); first.True.name = "Elephant"; first.True.parentID = 0; first.True.ID = 1; first.True.questionAnswer = 'A'; first.True.fromWhichBranch = 'Y'; first.False = new Node(); first.False.name = "DVD"; first.False.parentID = 0; first.False.ID = 1; first.False.questionAnswer = 'A'; first.False.fromWhichBranch = 'N'; do { first.branch(); end = terminal.readString("Quit or play again?"); } while(end.equals("again")); terminal.println("The game has ended."); } public void writePersons(Node first) throws Exception { ObjectOutputStream outputStream = null; try { outputStream = new ObjectOutputStream(new FileOutputStream("C:\\Users\\Daniel\\My Documents\\College\\CS1011\\testfiles\\index.txt")); outputStream.writeObject(first.question); } finally { //Close the ObjectOutputStream outputStream.flush(); outputStream.close(); } } }