COS 161 – Algorithms in Programming Project 03 – Truth Spotter Objectives The objective of this assignment is to become familiar with using ArrayLists and Interfaces. General Instructions for all...

1 answer below »
Requirements are in the Project_03.pdf file.I will attach the rest of the files in the conversation thread.


COS 161 – Algorithms in Programming Project 03 – Truth Spotter Objectives The objective of this assignment is to become familiar with using ArrayLists and Interfaces. General Instructions for all Assignments For each assignment you will write a Java program and test it. Start your programs with a comment block such as: /* NAME: COS 161, Summer 2020, Prof. Project ## File Name: CLASS_NAME.java */ Your programs should be neatly formatted, and follow the indenting, formatting, spacing, and commenting practices taught in class. Read each assignment carefully to see what is required. If you do not understand something in the assignment, ask a tutor or the instructor. You will get partial credit if you finish only part of an assignment or it is not working correctly. Turn it in and explain what you completed and what issues it has. It is usually better to turn in an imperfect assignment on the due date, rather than falling behind in the course. Part 1 (15 points) Create Classes The purpose of this assignment is to recreate the Lie Swatter™ game from the JackBox Party Pack™. The game allows for multiple players to participate, determining if they think a statement is true or false. The game keeps score for each player and progresses through multiple rounds before displaying who is the winner. If you are not familiar with the game (we played in class, so check the recording for that if you weren’t present), you can find more information at the following link: https://jackboxgames.fandom.com/wiki/Lie_Swatter https://jackboxgames.fandom.com/wiki/Lie_Swatter Note: this application should run in the console, no graphical user interface is required. Adding a DrawingPanel output is the extra credit for this assignment, it is highly recommended that you do not implement the graphical display until you have completed everything else. To begin, create two classes called Statement and Player, respectively. • In the Statement class, include 2 private Strings one called claim, and the other called explanation. Also include a private boolean value isTrue. Create accessors and mutators for these fields (getters and setters). • In the Player class, include a private String field called name. Also create a private int field named score. Create accessors and mutators for these fields (getters and setters). Implement the Comparable interface. The compareTo method should compare players based on scores. These classes will serve as the main classes you interact with as you build the game. You will want (and must) add to them as you go, but make sure you do not remove any of these fields, accessors, or mutators. You can add constructors to these classes if you want, or just use the default constructor. Part 2 (15 Points) Read Files and Create Your Own Category First, create an ArrayList for each of the categories. The ArrayLists should store Statement objects. Add the supplied files into your Eclipse project and declare a method called readFiles(String[] fileNames). This method will take in array of Strings which contain the names of the files (Entertainment.txt, Food.txt, History.txt, World.txt). For each fileName, the method should read the file using a scanner, creating a new Statement object, and adding that object to the corresponding ArrayList. Once this is working, create your own category file and populate it with information (this can be anything you like, just make sure it has at least 10 statements). Modify the code you have with another ArrayList for this new category, and make sure you modify the call to readFiles() so it now reads your file as well. Part 3 (15 Points) Take in Player Count and Names Take in from the console the number of players. You must limit the number of players to be between 2 and 8 for our implementation. You must also allow each player to enter in their name. At this point, you must create a way to track what each player uses to indicate whether a statement is true or false. I would recommend doing the following, but if you would prefer to do it another way, and it makes sense to you, this is not required. • Add 2 char fields to the Player class, one called trueChar and the other called falseChar. • When a player enters their name, assign and display to them a random keyboard character for true, and one for false that they will enter to indicate their guess (this allows multiple people around a keyboard to play, as they won’t know what other players keys are) • Make sure you display this to each player so they know what to enter, and also make sure you do not accidently reuse a character between two players (creating an ArrayList of chars with the alphabet and .remove() are helpful for this). • Add a char field to the Player class named currentGuess, this will be useful later and will be set and erased every round. This could also be a boolean, but you will have to do some calculations to set it based on what the trueChar and falseChar are. Part 4 (35 Points) Run the Game Create a method called runGame() that randomly selects 3 of your categories (one for each round), then shuffles the ArrayLists containing those category (this will change up the order so the same questions aren’t in the same order every time). Once the ArrayList is shuffled, display a question, and take in user input from the players. My recommendation for how to do this is to create a method that does the following: • Read a single char from the console, allowing one player to enter their true or false guess. Use this char to find the correct player (since char values are not repeated this should be simple enough), then set this char as that players currentGuess • Keep taking char input until every player has entered their guess (it may help to store the number of players somewhere easy to access for this) Once you have taken in the user input, determine if there is an “explanation” in the statement and print it if there is. Then, compare the player guesses to the correct answer from the Statement and allocate score appropriately. After 5 questions, a round is over. Sort the ArrayList of Players (compareTo() should do this based on score), and display the current scores. Then move on to the next chosen category. Once three rounds are done, display the final scores and give the players the opportunity to play again (with same or different players). Make sure you reset anything necessary to the default. This is much easier if you make methods for the setup instead of doing everything in main. Extra Credit (10 points) Add a GUI Go back and add a graphical user interface display to the game. It can look like what the actual game looks like, or you can create one of your own. It can be simple or complex, but must display the statements, the results, and the scores of the players. Extra Credit (10 Points) Extra Time Features Look into the Java Timer class (https://docs.oracle.com/javase/8/docs/api/javax/swing/Timer.html) Add the InputTimer.java file into your project, and modify your code to only take user input within a certain interval (while a certain value is true). Any user who does not put in input by the time the time expires gets no points, so make sure currentGuess is wiped out beforehand. The following code should help with this. https://docs.oracle.com/javase/8/docs/api/javax/swing/Timer.html What to Turn In Turn in your program(s) and their output(s) as a single pdf file. When you cut and paste your code or output into a word processor it may look distorted if it uses a non-fixed width font. If that happens, select your pasted text, and change the font into a fixed width font such as Courier. It is your responsibility to make your code and output neat and readable. If you have trouble converting a word processor document into a pdf, ask the instructor for assistance. Once you have the single document ready, submit it as an attachment on Blackboard. **NOTE: FOR THIS AND FUTURE ASSIGNMENTS, PLEASE ALSO ATTACH ALL YOUR .JAVA AND ANY OTHER FILES YOU ADDED TO THE BLACKBOARD SUBMISSION. // Create the Timer object which is necessary to call a TimerTask Timer timer = new Timer(); // Make the InputTImer that we will use the isRunning from InputTimer inputTask = new InputTimer(); // Schedule the Task with a delay // the int value to change how long it waits in milliseconds timer.schedule(inputTask, 250); while (inputTask.isRunning) { System.out.println("Still Running!!"); } System.out.println("Finished!!!!!!!!"); Abraham Lincoln had no middle name. true Ronald Reagan was a waiter during high school. false He was a lifeguard. Broccoli was once banned from the White House. true In 1990, George H.W. Bush claimed broccoli would no longer be in the White House. Before becoming queen, Queen Elizabeth was a mechanic. true The Boston Red Sox finally won a World Series in 2016. true The Chicago Cubs won the series after 108 years. The first Olympic games honored Alexander the Great. false They honored Zeus, the king of the Greek gods. United States postage stamps may only honor people who are dead. false In 2011,that rule was overturned. Barack Obama's favorite app is Candy Crush Saga. false In an interview with Barbara Walters, Barack Obama said his favorite app is Scrabble. Albert Einstein was awarded the Nobel Prize in Physics. true Gone with the Wind takes place in Savannah, Georgia. false The American Civil War ended in 1776. false
Answered Same DayJul 28, 2021

Answer To: COS 161 – Algorithms in Programming Project 03 – Truth Spotter Objectives The objective of this...

Arun Shankar answered on Jul 30 2021
147 Votes
Project_03/bin/mathematics.txt
2 is the only even prime number.
true
All other even numbers are divisible by 2.
23482347 is a perfect square.
false
A perfect square cannot have 7 as its unit's digit.
Natural numbers are well ordered.
true
0 is the least element.
Integers are well ordered.
false
There is no integer that is strictly lesser than all other integers.
f(x) = |x| is a continuous function.
true
f(x) = |x| is a differentiable function.
false
The function is not derivable at x = 0.
If a and b a
re both prime, they are coprime.
true
The only factors of a are 1 and a, and the only factors of b are 1 and b. So the only common factor is 1.
If a and b are coprime, and b and c are coprime, then a and c are coprime.
false
2 and 5 are coprime, 5 and 6 are coprime, but 2 and 6 are not coprime.
8723 is divisible by 3.
false
Sum of digits = 20 is not divisible by 3.
There are as many natural numbers as there are even natural numbers.
true
f(n) = 2n is a bijection.
Project_03/bin/entertainment.txt
The kids' bathroom on The Brady Bunch didn't have a toilet.
true
Nemo is a puffer fish.
false
He is a clown fish.
There was no World Series in 1994.
true
Baseball players were on strike that year.
John Lennon's middle name was Edward.
false
His middle name was Winston.
Pinocchio was the first animated, full-color Walt Disney feature film.
false
It was Snow White and the Seven Dwarfs.
In the Star Wars franchise movies, the voice of Yoda is played by the same person who did the voices of Miss Piggy, Grover, and Cookie Monster.
truef
The voices were performed by FrankOz
All the kings in a standard deck of cards have a mustache.
false
The King of Hearts does not have a mustache.
Mario of Super Mario Bros. fame was once a carpenter
true
He was first introduced as a carpenter in the videogame, DonkeyKong.
The name of Batman's butler is Albert
false
The butler's name is Alfred
Mayim Bialik, who plays Amy Farrah Fowler on the Big Bang Theory,is a neuroscientist.
true
She earned her Ph.D.in neuroscience in 2007.
Donald Duck's sister is named Donna.
false
Her name is Dumbella.
Elvis Presley had a twin brother
true
His twin died at birth.
In the famous commercial, Jake from State Farm was wearing jeans.
false
He was wearing khakis.
Johnny Depp is afraid of spiders.
false
He's afraid of clowns.
The first name of Kramer in Seinfeld is Cosmo.
true
Project_03/bin/world.txt
Japan has square watermelons.
true
Porcupines can float.
true
There are 100 dimples on a golf ball.
false
Per the Department of Physics at the University of Illinois at Urbana-Champaign, there are between 300 and 500 dimples.
Cows sleep standing up.
true
Polar bears' skin is black.
true
Alabama is the state printed on a Jack Daniel's label.
false
It's Tennessee.
Lightning never strikes the same place twice.
false
Lightning can strike anywhere more than once.
Fortune cookies were invented in China.
false
They were invented in the United States.
Dalmatians are born with black spots.
false
They're born with a white coat and usually develop spots around three weeks old.
It's illegal in Georgia to eat fried chicken with a knife and fork.
true
Georgia law says you can only eat fried chicken with your bare hands.
The capital of Libya is Benghazi.
false
Baby koalas are called joeys.
true
Brazil is the only country in the Americas whose official language is Portuguese.
true
Project_03/bin/Driver.class
Project_03/bin/history.txt
Abraham Lincoln had no middle name.
true
Ronald Reagan was a waiter during high school.
false
He was a lifeguard.
Broccoli was once banned from the White House.
true
In 1990, George H.W. Bush claimed broccoli would no longer be in the White House.
Before becoming queen, Queen Elizabeth was a mechanic.
true
The Boston Red Sox finally won a World Series in 2016.
true
The Chicago Cubs won the series after 108 years.
The first Olympic games honored Alexander the Great.
false
They honored Zeus, the king of the Greek gods.
United States postage stamps may only honor people who are dead.
false
In 2011,that rule was overturned.
Barack Obama's favorite app is Candy Crush Saga.
false
In an interview with Barbara Walters, Barack Obama said his favorite app is Scrabble.
Albert Einstein was awarded the Nobel Prize in Physics.
true
Gone with the Wind takes place in Savannah, Georgia.
false
The American Civil War ended in 1776.
false
Project_03/bin/Player.class
Project_03/bin/food.txt
Germany drinks the most beer in the world per person.
false
The Czech Republic drinks the most beer.
In some states, it's illegal to eat specific foods while walking backwards.
true
You may not eat doughnuts and walk backwards in Marion, Ohio; you may not eat peanuts and walk backwards during a concert in Green, New York, and you may not walk backwards while eating a hamburger in Oklahoma City, Oklahoma.
Twinkies originally had banana filling.
true
The name of the dog on a box of CrackerJack's is Spot.
false
The dog's name is Bingo.
People in Japan eat Kentucky Fried Chicken for Christmas dinner.
true
The first food grown and eaten in space was potatoes
false
The first food...
SOLUTION.PDF

Answer To This Question Is Available To Download

Related Questions & Answers

More Questions »

Submit New Assignment

Copy and Paste Your Assignment Here