Great Deal! Get Instant $10 FREE in Account on First Order + 10% Cashback on Every Order Order Now

( Assignment 2 ITECH 2309 Software Engineering ) Overview Develop a GUI based game of “Rock, Paper, Scissors” in JAVA using good software design and coding principles, practices and methodology. This...

1 answer below »
(
Assignment 2
ITECH 2309 Software Engineering
)
Overview
Develop a GUI based game of “Rock, Paper, Scissors” in JAVA using good software design and coding principles, practices and methodology. This is an individual assignment.
Timelines and Expectations
Percentage Value of Task: 25% of course
Due: 11:55pm Friday Week 11
Minimum time expectation: 20 hours
About Rock, Paper, Scissors
Rock, Paper, Scissors is a game between two players, in which players use their hands to model one of the following:
· Rock, modelled by a hand closed into a fist
· Paper, modelled by a flat hand facing palm down.
· Scissors, modelled by a fist with the two fingers closest to the thumb outstretched to make a ‘V’ shape.
Players raise and lower a closed fist on each count of one and two. On the count of three, players raise their hand, and then both lower their hand at the same time to disclose their modelled selection. The items chosen by the players to model are then compared to determine a winner, based on the logic:
· Rock beats Scissors
· Paper beats Rock
· Scissors beat Pape
· Equal selections are a tie and get replayed.
Completing these sequence results in a round of Rock, Paper, Scissors. Usually players opt for the best of three, in which three rounds are played and the player with the highest score at the end of the three rounds wins. Sometimes players may opt for the first to 3 or another chosen number, in which game play continues until one player reaches the agreed upon total of wins. Players are able to change their selected item for each throw, but it is considered poor form (and even cheating) to change your selection while you are in the process of throwing it.
There are several variations of the game given it has been played by word of mouth for many, many years, but the basic principles remain the same. A video demonstrating one example is available here: https:
www.youtube.com/watch?v=2dsHuU10udY
A more advanced variation of the game was discussed on the TV series “The Big Bang Theory”, being Rock, Paper, Scissors, Lizard, Spock. You can view a discussion of this here: https:
www.youtube.com/watch?v=iSHPVCBsnLw .
Assessment Details
Your task is to implement Rock, Paper, Scissors as a GUI-based Java game, using Eclipse. You may choose any recognized variation, including Rock, Paper, Scissors, Lizard, Spock, providing you clearly describe the rules for the variation you implement. As this is a two player game, a human will play against the computer. The computer’s throw must be chosen at random each turn – it is not allowed to cheat!
The GUI will have an Initialisation Window that allows the player to enter their name and configure the game. This includes setting how many rounds will occur, as well as any other customizations for your variation. An example of an Initialisation Window is shown below, although you are welcome to change how this appears and add more functionality to suit your particular game.
Sample Initialisation Window
The main game window will display the two parties competing (i.e. the named player and the computer), the number of rounds to be played and the cu
ent number of wins allocated to each player. It will include an option for the player to enter their throw each round, and a button to place the throw. When this button is clicked, the computer’s random selection will be displayed. The winner of the round will be identified, and a tally of each player’s wins displayed. At the end of the designated number of rounds, the overall winner is identified.
Sample Main Game Window
You are expected to use good design and coding principles and practices learned in lectures, including implementing applicable design patterns. Bad smells in code and design should be avoided as much as possible. You are expected to refactor your code, and establish automated testing using Junit to run unit and regression testing of your code. You are expected to test each functionality you add thoroughly for exception handling, positive results, negative results, boundary conditions etc., and provide test cases and results with your submission.
You are also required to document a report that covers:
· An overview of the game describing all functionality that has been implemented
· How game is designed and implemented
· Roles of design patterns in the game, clearly identifying the functionality where design patterns have had an impact and how this has occu
ed.
· Class diagram of the game showing all classes (concrete and abstract) and interfaces using Enterprise Architect.
Submission
You are required to submit:
· A ZIP file containing all code files including Unit tests, and an Enterprise Architect file of the class diagram.
· Individual Report
Marking Guide
Please refer to marking guide provided separately.
Feedback
Assignment will be marked and returned within two weeks of submission. Lecturer will discuss
oad issues in the lecture and tutors will give individual feedback in the lab sessions
Plagiarism:
Plagiarism is the presentation of the expressed thought or work of another person as though it is one's own without properly acknowledging that person. You must not allow other students to copy your work and must take care to safeguard against this happening. More information about the plagiarism policy and procedure for the university can be found at http:
federation.edu.au/students/learning-and-study/online-help-with/plagiarism.
(
Page
1
of 4
) (
CRICOS Provider No. 00103D
) (
it
ech2309 - assignment 2 - s2 2020
.docxx
)
Answered Same Day Jun 02, 2021 ITECH 2309

Solution

Mohd answered on Jun 04 2021
135 Votes
Rock Paper Scissors/.classpath

    
    
    
Rock Paper Scissors/.project

     Rock Paper Scissors
    
    
    
    
        
             org.eclipse.jdt.core.javabuilde
            
            
        
    
    
         org.eclipse.jdt.core.javanature
    
Rock Paper Scissors
in/Dashboard.class
public synchronized class Dashboard extends javax.swing.JFrame implements java.awt.event.ActionListener {
private Login login;
public int p1;
public int c1;
private javax.swing.JButton jButton3;
private javax.swing.JButton jButton5;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel10;
private javax.swing.JLabel jLabel11;
private javax.swing.JLabel jLabel12;
private javax.swing.JLabel jLabel13;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JLabel jLabel4;
private javax.swing.JLabel jLabel5;
private javax.swing.JLabel jLabel6;
private javax.swing.JLabel jLabel7;
private javax.swing.JLabel jLabel8;
private javax.swing.JLabel jLabel9;
private javax.swing.JPanel jPanel1;
private javax.swing.JTextField jTextField1;
public void Dashboard();
private void initComponents();
public void start(Login, String, int);
public void actionPerformed(java.awt.event.ActionEvent);
public void checkingWinner();
}
Rock Paper Scissors
in/Login.class
public synchronized class Login extends javax.swing.JFrame implements java.awt.event.ActionListener {
public static Login login;
private javax.swing.JButton jButton1;
private javax.swing.JButton jButton2;
private javax.swing.JButton jButton3;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JPanel jPanel1;
private javax.swing.JTextField jTextField1;
private javax.swing.JTextField jTextField2;
public void Login();
private void initComponents();
public static void main(String[]);
public void actionPerformed(java.awt.event.ActionEvent);
public void back(Login);
}
Rock Paper Scissors/src/Dashboard.java
Rock Paper...
SOLUTION.PDF

Answer To This Question Is Available To Download

Related Questions & Answers

More Questions »

Submit New Assignment

Copy and Paste Your Assignment Here