Problem 42
Magic 8-Ball
Files Needed: Magic8Ball.java
import java.util.Random;
public class Magic8Ball {
public static void main(String[] args) {
Random r = new Random();
int choice = 1 + r.nextInt(15);
String response = "";
if (choice == 1)
response = "It is certain";
else if (choice == 2)
response = "It is decidedly so";
else if (choice == 3)
response = "Without a doubt";
else if (choice == 4)
response = "Yes - definitely";
else if (choice == 5)
response = "You may rely on it";
else if (choice == 6)
response = "As I see it, yes";
else if (choice == 7)
response = "Most likely";
else if (choice == 8)
response = "Outlook good";
else if (choice == 9)
response = "Signs point to yes";
else if (choice == 10)
response = "Yes";
else if (choice == 11)
response = "Reply hazy, try again";
else if (choice == 12)
response = "Ask again later";
else if (choice == 13)
response = "Better not tell you now";
else if (choice == 14)
response = "Cannot predict now";
else if (choice == 15)
response = "Concentrate and ask again";
else
response = "8-BALL ERROR!";
System.out.println("MAGIC 8-BALL SAYS: " + response);
}
}
What You Should See
Your answers will probably be different than these. Actually, that’s kind of the point.
MAGIC 8-BALL SAYS: It is decidedly so
MAGIC 8-BALL SAYS: Reply hazy, try again
MAGIC 8-BALL SAYS: Signs point to yes
What You Should Do on Your Own
Assignments turned in without these things will receive no credit.
- The real Magic 8-Ball™ contains 20 responses, not 15. Change the code so that it picks a random number from 1-20, and add the following five responses:
- Don’t count on it
- My reply is no
- My sources say no
- Outlook not so good
- Very doubtful
◄ 41: Randomness 43: A Number-Guessing Game ►
Adapted from ProgrammingByDoing.com
©2013 Graham Mitchell
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 United States License.