Repository for submission for week 6 coding assignment.
Follow the Exercises below to complete this assignment.
-
In Eclipse, or an IDE of your choice, write the code that accomplishes the objectives listed below. Ensure that the code compiles and runs as directed.
-
Create a new repository on GitHub for this week’s assignment and push your completed code to this dedicated repo.
-
Create a video showcasing your work:
-
In this video: record and present your project verbally while showing the results of the working project. Don’t forget to include the required functionality.
-
Easy way to Create a video: Start a meeting in Zoom, share your screen, open Eclipse with the code and your Console window, start recording & record yourself describing and running the program showing the results. When you click "End Meeting" it will save the video on your computer.
-
Create a video, up to five minutes max, showing and explaining how your project works with an emphasis on the portions you contributed.
-
This video should be done using screen share and voice over.
-
-
This should then be uploaded to a publicly accessible site, such as YouTube. Ensure the link you share is PUBLIC or UNLISTED!
-
(If it is not accessible by your grader, your project will be graded based on what they can access.)
For the final project you will be creating an automated version of the classic card game WAR, using classes and objects.
Here are some tips and suggestions as you proceed:
-
You will create Classes with fields & methods for the following:
- Card
- Deck
- Player
-
You will create an application class,
App
, which has amain
method and which will use the classes created above to accomplish the goal of this project, instantiating each of the objects as needed.- We suggest one
Deck
, with 52Card
s, and 2Player
s. Remember to create getters, setters and constructors for each of these.
- We suggest one
-
As your Final Java Project, this assignment will be written in Java, and will use much of what you have learned so far, including variables, loops, methods, classes, instantiation of objects, and more.
-
Start with the basics. Follow the instructions.
Remember: this project is a simple, automated version of the card game WAR. The idea is to have it run automatically.
Card
-
Fields:
value
(contains a value from 2-14 representing cards 2-Ace)name
(e.g. Ace of Diamonds, or Two of Hearts)
-
Methods:
- Getters and Setters
describe
(prints out information about a card)
Deck
-
Fields:
cards
(List
ofCard
)
-
Methods:
-
shuffle
(randomizes the order of the cards) -
draw
(removes and returns the top card of the Cards field) -
In the constructor, when a new
Deck
is instantiated, theCards
field should be populated with the standard 52 cards.
-
Player
-
Fields:
hand
(List
ofCard
)score
(set to 0 in the constructor)name
-
Methods:
describe
(prints out information about the player and calls the describe method for each card in the Hand List)flip
(removes and returns the top card of the Hand)draw
(takes a Deck as an argument and calls the draw method on the deck, adding the returned Card to the hand field)incrementScore
(adds 1 to the Player’s score field)
-
Instantiate a
Deck
and twoPlayer
s, call theshuffle
method on the deck. -
Using a traditional
for
loop, iterate 52 times calling theDraw
method on the other player each iteration using theDeck
you instantiated. -
Using a traditional
for
loop, iterate 26 times and call theflip
method for each player.-
Compare the value of each card returned by the two players'
flip
methods. Call theincrementScore
method on the player whose card has the higher value. Print a message to say which player received a point. -
Note: If the values are equal (it is a tie), print a message saying that no point was awarded.
-
-
After the loop, compare the final score from each player.
-
Print the final score of each player and either
Player 1
,Player 2
, orDraw
depending on which score is higher or if they are both the same.
Printing out information throughout the game adds value, including easier debugging as you progress and a better user experience.
- Using the Card
describe()
method when each card is flipped illustrates the game play. - Printing the winner of each turn adds interest -- or a message indicating a tie.
- Printing the updated score after each turn shows game progression.
- At the end of the game: print the final score of each player and the winner’s name or
Draw
if the result is a tie.