/**
* Used to perform the operations of the magic 8 ball
*/
import java.util.Random;
import java.util.ArrayList;
import java.util.Scanner;
import java.io.*;
public class WFS_Magic8Ball
{
//Fields
private ArrayList<String> responses = new ArrayList<String>();
/**
* No-arg constructor that initializes the magic 8 ball to be ready to use
*/
public WFS_Magic8Ball()throws IOException
{
InitializeResponseText();
}
/**
* Method used to initialize the ArrayList with the phrases in the file
*/
public void InitializeResponseText()throws IOException
{
//Declares and initializes the file that the responses are gathered from
File inputFile = new File("8_ball_responses.txt");
//Declares and initializes the scanner that accesses the inputFile
Scanner inputFileScanner = new Scanner(inputFile);
//Adds each line in the input file to the ArrayList
while(inputFileScanner.hasNext())
{
responses.add(inputFileScanner.nextLine());
}
//Closes the file
inputFileScanner.close();
}
/**
* Method used to add a custom String that wasn't in the responses file
* @param str String to be added to the responses ArrayList
*/
public void setResponseText(String str)
{
responses.add(str);
}
/**
* Method used to get the responses that the magic 8 ball can use
* @return Returns the ArrayList holding the Strings of the phrases the magic 8 ball can use
*/
public ArrayList<String> getResponses()
{
return responses;
}
/**
* Method used to get a random response from the responses ArrayList
* @return Returns the random response as a String
*/
public String getRandomResponse()
{
//Declares the random variable to get a random number
Random rand = new Random();
return responses.get(rand.nextInt(responses.size()));
}
}