// CS230 Lab on Trees import java.util.Scanner; // for reading from keyboard import javafoundations.LinkedBinaryTree; // for the LinkedBinaryTree and all public class AnimalExpert { private LinkedBinaryTree theTree; // sets up 'expert' database public AnimalExpert(){ String e1 = "Is the animal big?"; String e2 = "Does it live in a cage?"; String e3 = "Does it eat grass?"; String e4 = "Does it meow?"; String e5 = "Does it chirp?"; //String e6 = "Does it have a long neck?"; String e6 = "Does it like water?"; String e7 = "Does it moo?"; String e8 = "It's a dog!"; String e9 = "It's a cat!"; String e10 = "It's a hamster!"; String e11 = "It's a bird!"; String e12 = "It's a lion!"; String e13 = "It's a crocodile!"; String e14 = "It's a horse!"; String e15 = "It's a cow!"; LinkedBinaryTree n1,n2,n3,n4,n5,n6,n7,n8,n9,n10,n11,n12,n13,n14,n15; n1 = new LinkedBinaryTree(e4, new LinkedBinaryTree(e8), new LinkedBinaryTree(e9)); n2 = new LinkedBinaryTree(e5, new LinkedBinaryTree(e10), new LinkedBinaryTree(e11)); n3 = new LinkedBinaryTree(e6, new LinkedBinaryTree(e12), new LinkedBinaryTree(e13)); n4 = new LinkedBinaryTree(e7, new LinkedBinaryTree(e14), new LinkedBinaryTree(e15)); n5 = new LinkedBinaryTree(e2, n1, n2); n6 = new LinkedBinaryTree(e3, n3, n4); theTree = new LinkedBinaryTree(e1, n5, n6); } public void guessMyAnimalOnce() { Scanner scan = new Scanner(System.in); LinkedBinaryTree current = theTree; System.out.println("=== I will try to guess the animal you are thinking of! ==="); while (current.size() > 1) { // not at a leaf (where the answer is stored) System.out.println("Q: " + current.getRootElement() + " (y/n)"); String answer = scan.nextLine(); if (answer.equalsIgnoreCase("N") || answer.equalsIgnoreCase("NO")) current = current.getLeft(); else current = current.getRight(); } System.out.println("AND... : " + current.getRootElement() + "\n"); } // guessAnimal public void guessMyAnimalMany() { Scanner scan = new Scanner(System.in); String more = "y"; do { guessMyAnimalOnce(); //ask whether use wants to play again System.out.println("Would you like to play again? (y/n)"); more = scan.nextLine(); //get their answer } while (more.equalsIgnoreCase("y")); scan.close(); System.out.println("Ok! Thanks for playing my game. Bye now!"); } public static void main (String[] args ) { AnimalExpert expert = new AnimalExpert(); expert.guessMyAnimalMany(); } } // AnimalExpert class