Home > front end >  I won't lose in my game Stone, Paper and Scissor
I won't lose in my game Stone, Paper and Scissor

Time:10-11

I am a beginner in python. Started a week ago. So I created a basic Stone, paper and scissor game with user input and random guess for computer. See the program below.

import random
random_element = random.randrange(1,4)
computer = random_element
print("Computer have choosen their, Now it's your turn.")
player = int(input("Plyer's Turn: Enter (1) to choose Stone, (2) for Paper, and (3) for Scissor:\n"))
if player == 1:
    player = 'Stone'
if player == 2:
    player = 'Paper'
if player == 3:
    player = 'Scissor'
if computer == 1:
    computer = 'Stone'
if computer == 2:
    computer = 'Paper'
if computer == 3:
    computer = 'Scissor'
def game(computer,player):
   bool = 1
    if computer == player:
        bool = None
    elif  computer == 1:
        if player == 2:
           bool = True
        if player == 3:
        bool = False
    elif computer == 2:
        if player == 3:
            bool = True
        if player == 1:
            bool = False
    elif computer == 3:
        if player == 1:
            bool =  True  
        if player == 2:
            bool = False      
    return bool

if player == 1:
    player = 'Stone'
if player == 2:
    player = 'Paper'
if player == 3:
    player = 'Scissor'    


answer = game(computer,player)

if answer == True:
    print(f"Computer chosen: {computer} \nand You chosen: {player} \nSo, You Won the Game.")

if answer == False:
    print(f"Computer chosen: {computer}\nand You chosen: {player}\nSo, You loose the Game.")

if answer == None:    
    print(f"Computer was chosen: {computer}\nand you choose: {player}\nIt is a Tie..")

But after some time to try this game. I realise that I won every time except Tie. I don't know why. I check my program too many time and checks winning and losing statement too many times. But I won't found my error.

Please help me. This is my first game.

If someone have good experience in python then answer me proper, simple but short method (without importing too many modules).

CodePudding user response:

You have first assigned numbers to the variables computer and player. After that you change it to a string. but you looking for a number in the def game(computer,player) function.

I didn't change your variable name or code structure. read all comments under your question and change the code as you wish.

import random
random_element = random.randrange(1,4)
computer = random_element
print("Computer have choosen their, Now it's your turn.")
player = int(input("Plyer's Turn: Enter (1) to choose Stone, (2) for Paper, and (3) for Scissor:\n"))
if player == 1:
    player = 'Stone'
if player == 2:
    player = 'Paper'
if player == 3:
    player = 'Scissor'
if computer == 1:
    computer = 'Stone'
if computer == 2:
    computer = 'Paper'
if computer == 3:
    computer = 'Scissor'
def game(computer,player):
    
    bool = 1
    if computer == player:
        bool = None
    elif  computer == 'Stone':
        if player == 'Paper':
           bool = True
        if player == 'Scissor':
            bool = False
    elif computer == 'Paper':
        if player == 'Scissor':
            bool = True
        if player == 'Stone':
            bool = False
    elif computer == 'Scissor':
        if player == 'Stone':
            bool =  True  
        if player == 'Paper':
            bool = False      
    return bool

if player == 1:
    player = 'Stone'
if player == 2:
    player = 'Paper'
if player == 3:
    player = 'Scissor'    
print(computer)

answer = game(computer,player)

if answer == True:
    print(f"Computer chosen: {computer} \nand You chosen: {player} \nSo, You Won the Game.")

if answer == False:
    print(f"Computer chosen: {computer}\nand You chosen: {player}\nSo, You loose the Game.")

if answer == None:    
    print(f"Computer was chosen: {computer}\nand you choose: {player}\nIt is a Tie..")
  • Related