Problem written by Chris Piech.
The idea behind an 8-Ball is very simple. You ask the eight ball a yes or no question, and it tells you the answer.
Except, that the answer it choses is randomly selected from a set of prefabricated responses.
A real life 8-Ball
Write a program that continuously prompts the user for a yes or no question, and then randomly selects from 5 canned answers:
Here is an example run of the program.
To generate random numbers create a RandomGenerator instance variable (a variable declared outside all methods) like so:
private RandomGenerator rgen = new RandomGenerator();
You can then use the variable to generate random numbers.
rgen.nextInt(max) //generates a random int in the range [0, max)
/** * Class: Eight Ball * ----------------- * Simulates an eight ball and gives sage answers to yes or * no questions. */ public class EightBall extends ConsoleProgram { private static RandomGenerator rg = new RandomGenerator(); public void run() { while(true) { readLine("Ask a yes or no question: "); int choice = rg.nextInt(5); println(choice); if(choice == 0) { println("Without a doubt"); } if(choice == 1) { println("Yes"); } if(choice == 2) { println("Ask again later."); } if(choice == 3) { println("No"); } if(choice == 4) { println("Karel thinks so."); } println(""); } } }