master

Learning Profile for Assignment #2, And Question #2

Name: Mo Khan Student ID: 3431709

  1. Problem Statement

Write a program that plays the Rock-Paper-Scissors-Lizard-Spock game. Refer to http://en.wikipedia.org/wiki/Rock-paper-scissors-lizard-Spock for more information. Normally, one player is a human and the other is the computer program. However, in this exercise, the program will generate two players who play against each other. The play continues until either of the computer-generated players wins four consecutive times. In this game, two random integers are generated in the range of [1 to 5], one per player. 1 refers to Rock, 2 refers to Paper, 3 refers to Scissors, 4 refers to Lizard, and 5 refers to Spock.

For example, if the computer randomly generates integers 2 and 5 in the first iteration, 2 is for the first player and 5 is for the second player. Based on Rule 8 in the following 10 rules, Paper (2) disproves Spock (5), so Player 1 wins. Repeat it to generate one more pair and determine who wins that iteration. Continue the iterations until one player wins four consecutive times.

  1. Scissors cut paper

  2. Paper covers rock

  3. Rock crushes lizard

  4. Lizard poisons Spock

  5. Spock smashes (or melts) scissors

  6. Scissors decapitate lizard

  7. Lizard eats paper

  8. Paper disproves Spock

  9. Spock vaporizes rock

  10. Rock breaks scissors

  11. Description of the Code

The main game loop can be found in main. This will loop until a winner has won at least 4 consecutive times.

The Random class is used to generate a pseudo random number between 0 - 4. To keep the numbers between 1 - 5, I have incremented this value by 1.

The play method prints out the choice for both players, then determines the winner and adjusts the last winner and consecutive wins fields based on the winner.

  1. Errors and Warnings

When a tie occurs, I assume the previous winner remains the current winner.

This program does not require any user input so the possibilities remains low. A possible condition that can occur is an infinite loop due to the random number generator producing results that does not allow a single player to win 4 consecutive times. One way to handle this scenario, is to set a maximum number of rounds that can be played. I chose not to implement this.

  1. Sample Input and Output

  2. An example of a short game:

```bash
Starting a new game of Rock, paper, scissors, lizard, spock...

Round: 1
--------------------------------------
Player 1: scissor
Player 2: paper
Player 1 has 1 consecutive wins.

Round: 2
--------------------------------------
Player 1: scissor
Player 2: lizard
Player 1 has 2 consecutive wins.

Round: 3
--------------------------------------
Player 1: rock
Player 2: lizard
Player 1 has 3 consecutive wins.

Round: 4
--------------------------------------
Player 1: paper
Player 2: rock
Player 1 has 4 consecutive wins.

**************************************
      The winner is player 1!
**************************************
```
  1. An example of a longer game:
```bash
...
Round: 72
--------------------------------------
Player 1: paper
Player 2: paper
Player 1 has 3 consecutive wins.

Round: 73
--------------------------------------
Player 1: rock
Player 2: scissor
Player 1 has 4 consecutive wins.

**************************************
      The winner is player 1!
**************************************
```
  1. Discussion

I chose to print additional information to the console to make it easier to see how many rounds were played and to ensure that the correct winner is determined.