Open In App

Python program to implement Rock Paper Scissor game

Last Updated : 30 Apr, 2024
Like Article

Python is a multipurpose language and one can do anything with it. Python can also be used for game development. Let’s create a simple command-line Rock-Paper-Scissor game without using any external game libraries like PyGame. In this game, the user gets the first chance to pick the option between Rock, paper, and scissors. After the computer select from the remaining two choices(randomly), the winner is decided as per the rules.

Winning Rules as follows:
Rock vs paper-> paper wins
Rock vs scissor-> Rock wins
paper vs scissor-> scissor wins.

In this game, randint() inbuilt function is used for generating random integer values within the given range.


# import random module
import random
# print multiline instruction
# performstring concatenation of string
print('Winning rules of the game ROCK PAPER SCISSORS are :\n'
      + "Rock vs Paper -> Paper wins \n"
      + "Rock vs Scissors -> Rock wins \n"
      + "Paper vs Scissors -> Scissor wins \n")

while True:

    print("Enter your choice \n 1 - Rock \n 2 - Paper \n 3 - Scissors \n")

    # take the input from user

    choice = int(input("Enter your choice :"))

    # OR is the short-circuit operator
    # if any one of the condition is true
    # then it return True value

    # looping until user enter invalid input
    while choice > 3 or choice < 1:
        choice = int(input('Enter a valid choice please ☺'))

        # initialize value of choice_name variable
    # corresponding to the choice value
    if choice == 1:
        choice_name = 'Rock'
    elif choice == 2:
        choice_name = 'Paper'
        choice_name = 'Scissors'

        # print user choice
    print('User choice is \n', choice_name)
    print('Now its Computers Turn....')

    # Computer chooses randomly any number
    # among 1 , 2 and 3. Using randint method
    # of random module
    comp_choice = random.randint(1, 3)

    # looping until comp_choice value
    # is equal to the choice value
    while comp_choice == choice:
        comp_choice = random.randint(1, 3)

     # initialize value of comp_choice_name
    # variable corresponding to the choice value
    if comp_choice == 1:
        comp_choice_name = 'RocK'
    elif comp_choice == 2:
        comp_choice_name = 'Paper'
        comp_choice_name = 'Scissors'
    print("Computer choice is \n", comp_choice_name)
    print(choice_name, 'Vs', comp_choice_name)
    # we need to check of a draw
    if choice == comp_choice:
        print('Its a Draw', end="")
        result = "DRAW"
    # condition for winning
    if (choice == 1 and comp_choice == 2):
        print('paper wins =>', end="")
        result = 'Paper'
    elif (choice == 2 and comp_choice == 1):
        print('paper wins =>', end="")
        result = 'Paper'

    if (choice == 1 and comp_choice == 3):
        print('Rock wins =>\n', end="")
        result = 'Rock'
    elif (choice == 3 and comp_choice == 1):
        print('Rock wins =>\n', end="")
        result = 'RocK'

    if (choice == 2 and comp_choice == 3):
        print('Scissors wins =>', end="")
        result = 'Scissors'
    elif (choice == 3 and comp_choice == 2):
        print('Scissors wins =>', end="")
        result = 'Rock'
     # Printing either user or computer wins or draw
    if result == 'DRAW':
        print("<== Its a tie ==>")
    if result == choice_name:
        print("<== User wins ==>")
        print("<== Computer wins ==>")
    print("Do you want to play again? (Y/N)")
    # if user input n or N then condition is True
    ans = input().lower()
    if ans == 'n':
# after coming out of the while loop
# we print thanks for playing
print("thanks for playing")


winning Rules of the Rock paper and scissor game as follows:
rock vs paper->paper wins
rock vs scissors->rock wins
paper vs scissors->scissors wins
Enter choice
1. Rock
2. paper
3. scissor
User turn: 1
User choice is: Rock
Now its computer turn.......
computer choice is: paper
Rock V/s paper
paper wins =>computer wins
do you want to play again?

Code Explanation:

  1. The code starts by printing a message that states the rules of the game.
  2. The first line in the code prints “Rock vs paper->paper wins.”
  3. This is because if you have a rock, and you play against someone who has a piece of paper, the rock will beat the paper.
  4. The next line in the code prints “Rock vs scissor->Rock wins.”
  5. This is because if you have a rock, and you play against someone who has a scissors, the rock will beat the scissors.
  6. The last line in the code prints “paper vs scissor->scissor wins.”
  7. This is because if you have a piece of paper, and you play against someone who has a scissors, then the piece of paper will beat the scissors.
  8. The code will print the following output: Winning Rules of the Rock paper scissor game as follows: Rock vs paper->paper wins Rock vs scissor->Rock wins paper vs scissor->scissor wins
  9. The code starts by asking the user for a choice.
  10. The code then checks to see if the input is 1, 2, or 3.
  11. If it is not one of those values, the code sets the choice_name variable to ‘Rock’ if choice == 1, ‘paper’ if choice == 2, and ‘scissor’ if choice == 3.
  12. The next part of the code asks the user for their computer turn.
  13. The code uses a random number generator to choose between 1, 2, and 3.
  14. This value is stored in comp_choice_name.
  15. Next, the code loops until comp_choice equals choice.
  16. In each loop iteration, comp_choice will be randomly chosen from 1-3 and stored in comp_choice_name.
  17. Once comp_choice equals choice, this means that the computer has chosen rock as its turn!
  18. Finally, it prints out both choices so that everyone can see what happened (user choice is: Rock V/s paper; Computer choice is: Rock V/s scissor).
  19. The code will ask the user for a choice between rock, paper and scissors.
  20. Once the user enters their choice, the code will randomly choose one of those options as the computer’s turn.
  21. The code then prints out the chosen option and the user’s choice.
  22. Finally, it loops back to ask for another choice from the user.

Like Article
Suggest improvement
Share your thoughts in the comments

Similar Reads