logo Use CA10RAM to get 10%* Discount.
Order Nowlogo
(5/5)

 Write a program to allow a human to play a game of Rock, Paper, Scissors versus the computer.

INSTRUCTIONS TO CANDIDATES
ANSWER ALL QUESTIONS

Description: Write a program to allow a human to play a game of Rock, Paper, Scissors versus the computer. The sample programs (rps1.txt, rps2.txt, and rps3.txt) show 3 runs from my solution to this problem using the default computer player. You must use the given computer player class so the choices are predictable. This is necessary to that we can grade your program. If you were writing the program for yourself you would of course make the computer choices random. But the program you turn in must use the predictable choices generated by the given computer player class.

Given the same human name and computer choices, your program must match this output exactly. Use a diff tool such as the one at this website ( www.quickdiff.com) to ensure your program produces the correct output. Even minor differences in characters will cause you to fail grading tests and lose points.

The program:

  • Asks the user for their name
  • Asks the user how many rounds of Rock, Paper, Scissors they want to play
  • Plays that many rounds of the game
  • for each round of the game
    • asks the user for their choice
    • have the computer make a random choice
    • prints out each player's choice
    • prints the results of the round
  • After playing the specified number of rounds, displays the number or rounds the user won, the number of rounds the computer won, and the number of rounds that were a draw
  • Declares who the better player was based on the number of wins

This is not an easy program, mostly due to the size of the program. The individual steps are not too difficult, but their are many steps. The program description above gives you a rough idea of how to break the program up into parts.

Have a high level structure and then implement parts of that structure (the individual methods) one at a time, testing to make sure they work before going on. You may have to write some testing code that will not be part of the final program. Do not write the whole program in main and then try and break it up into methods.

Here are some tips on the various parts of the program.

  1. Main method.

The main method creates the an object of type RandomPlayer. If no values are sent to main a default RandomPlayer is created. If you send an argument to the main method it is assumed it is a single value that can be parsed to an int. (These pages describe how to send an argument to the main method in BlueJ or Eclipse). Pass the RandomPlayer object to the methods that need it. Feel free to share examples of your output for non default players on Piazza.

In the main program declare a Scanner variable that is hooked up to System.in. You must include the line of code

import java.util.Scanner;

at the top of your program.

Pass the Scanner object you create as a parameter to any methods that need it. The main method should not have a lot of statements, instead it shall call other methods. Do not create multiple Scanners. Create one Scanner connected to System.in and pass that object to the methods that need it. If you create more than one Scanner in your program connected to System.in (Scanner sc = new Scanner(System.in);) you will fail, many many of our tests and lose a lot of correctness points.

  1. Ask the user for their name. This is a good candidate for a separate method that returns a String.
  2. Ask the user how many rounds of Rock, Paper, Scissors they want to play. This is another good candidate for a separate method that returns an int. You do not have to do any error checking on the user input. If they enter something that is not an int it is appropriate for the program to end due to a runtime error.
  3. Playing the rounds of the gameGiven our current programming tools this will be the largest and most complex method. It is in turn broken down into several parts. You will need a number of local variables in this method.
  4. Ask the user what their choice is. The user will enter an integer as their choice. You do not need to error check their input.
  5. Have the computer make a random choice. To do this call the getComputerChoice method on the RandomPlayer object created in main and passed as a parameter.

You must use the provided RandomPlayer.java file. Do not change it.. Do not use Random() (from java.util) directly and do not use Math.random().  Keep RandomPlayer.java in a separate file. Do not turn in RandomPlayer.java.

  1. Print out each player's choice. You will find it useful to have a method that is passed an  int parameters and returns the correct String for that int. In this program 1 represents "Rock", 2 represents "Paper", and 3 represents "Scissors".
  2. Print the results of that round.This is the most algorithmically difficult part of the assignment because there are nine possible outcomes and using the programming tools of chapters 1 - 4 and section 5.3 it is difficult to remove redundancy.

The nine possible outcomes are

Computer Choice

Human Choice

Result

Rock

Rock

Draw

Rock

Paper

Human Wins

Rock

Scissors

Computer Wins

Paper

Rock

Computer Wins

Paper

Paper

Draw

Paper

Scissors

Human Wins

Scissors

Rock

Human Wins

Scissors

Paper

Computer Wins

Scissors

Scissors

Draw

You must follow the format as shown in the sample output.

  1. After playing the specified number of rounds display how time the user won, how many times the computer won, and how many draws occurred.  The method that runs the rounds shall call a method to display this information.

10. Declare who the better player was based on the number of wins.  This can be part of the results method but will require some conditional execution with if statements.

(5/5)
Attachments:

Related Questions

. Introgramming & Unix Fall 2018, CRN 44882, Oakland University Homework Assignment 6 - Using Arrays and Functions in C

DescriptionIn this final assignment, the students will demonstrate their ability to apply two ma

. The standard path finding involves finding the (shortest) path from an origin to a destination, typically on a map. This is an

Path finding involves finding a path from A to B. Typically we want the path to have certain properties,such as being the shortest or to avoid going t

. Develop a program to emulate a purchase transaction at a retail store. This program will have two classes, a LineItem class and a Transaction class. The LineItem class will represent an individual

Develop a program to emulate a purchase transaction at a retail store. Thisprogram will have two classes, a LineItem class and a Transaction class. Th

. SeaPort Project series For this set of projects for the course, we wish to simulate some of the aspects of a number of Sea Ports. Here are the classes and their instance variables we wish to define:

1 Project 1 Introduction - the SeaPort Project series For this set of projects for the course, we wish to simulate some of the aspects of a number of

. Project 2 Introduction - the SeaPort Project series For this set of projects for the course, we wish to simulate some of the aspects of a number of Sea Ports. Here are the classes and their instance variables we wish to define:

1 Project 2 Introduction - the SeaPort Project series For this set of projects for the course, we wish to simulate some of the aspects of a number of

Ask This Question To Be Solved By Our ExpertsGet A+ Grade Solution Guaranteed

expert
Um e HaniScience

621 Answers

Hire Me
expert
Muhammad Ali HaiderFinance

867 Answers

Hire Me
expert
Husnain SaeedComputer science

903 Answers

Hire Me
expert
Atharva PatilComputer science

853 Answers

Hire Me
June
January
February
March
April
May
June
July
August
September
October
November
December
2025
1950
1951
1952
1953
1954
1955
1956
1957
1958
1959
1960
1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
2027
2028
2029
2030
2031
2032
2033
2034
2035
2036
2037
2038
2039
2040
2041
2042
2043
2044
2045
2046
2047
2048
2049
2050
SunMonTueWedThuFriSat
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
1
2
3
4
5
00:00
00:30
01:00
01:30
02:00
02:30
03:00
03:30
04:00
04:30
05:00
05:30
06:00
06:30
07:00
07:30
08:00
08:30
09:00
09:30
10:00
10:30
11:00
11:30
12:00
12:30
13:00
13:30
14:00
14:30
15:00
15:30
16:00
16:30
17:00
17:30
18:00
18:30
19:00
19:30
20:00
20:30
21:00
21:30
22:00
22:30
23:00
23:30