Reputation: 567
This is what I came up with for my rock-paper-scissors game:
import random
from time import sleep
print "Please select: "
print "1 Rock"
print "2 Paper"
print "3 Scissors"
player = input ("Choose from 1-3: ")
if player == 1:
print "You choose Rock"
sleep (2)
print "CPU chooses Paper"
sleep (.5)
print "You lose, and you will never win!"
elif player == 2:
print "You choose Paper"
sleep (2)
print "CPU chooses Scissors"
sleep (.5)
print "You lose, and you will never win!"
else:
print "You choose Scissors"
sleep (2)
print "CPU chooses Rock"
sleep (.5)
print "You lose, and you will never win!"
and what I want the program to do is to RANDOMLY choose 1 out of the three options (rock paper scissors) no matter what the user inputs. How can I accomplish this?
Upvotes: 7
Views: 18488
Reputation: 1
Try this instead:
print()
humanGuess = input("rock, paper or scissors?: ")
import random
misc =(random.randint(1,3))
if misc == 1 and humanGuess == "paper":
print ("paper, [draw] ")
elif misc == 2 and humanGuess == "paper":
print ("rock, [you win] ")
elif misc == 3 and humanGuess == "paper":
print ("scissors, [I win] ")
elif misc == 1 and humanGuess == "rock":
print ("paper, [I win] ")
elif misc == 2 and humanGuess == "rock":
print ("rock, [draw] ")
elif misc == 3 and humanGuess == "rock":
print ("scissors, [you win] ")
elif misc == 1 and humanGuess == "scissors":
print ("paper, [you win] ")
elif misc == 2 and humanGuess == "scissors":
print ("rock, [I won] ")
elif misc == 3 and humanGuess == "scissors":
print ("scissors, [draw] ")
else:
print ("not recognised")
I think this works
Upvotes: -6
Reputation: 11
Not an expert, but here is what I have thus far, using a __name__ == '__main__'
statement may be helpful if you need the computer to generate an answer and keep it clean and concise.
No solution given.
import random
def is_tie(move1, move2):
'''FIX! (parameter types) -> return type
Return True if move1 and move2 are the same.'''
if move1 == move2:
return True
def is_win(move1, move2):
'''FIX! (parameter types) -> return type
Return True iff move1 beats move2 in rock-paper-scissors.'''
choice1 = scissor > paper,
choice2 = paper > rock,
choice3 = rock > scissor
return choice1 or choice2 or choice3
if move1 > move2:
return True
if __name__ == '__main__':
# Get a move from the user.
print "Rock, Paper, Scissor",
move1 = raw_input("What is your move? ")
# Now, to generate a random move for the computer. Tricky... Here are some examples and suggestions, no solution given.
if move2(random.randint(1,3)) == 1:
print "paper"
elif move2(random.randint(1,3)) == 2:
print "rock"
else:
print "scissor"
# Evaluate who wins and then print out an appropriate message.
#if solution(move1, move2):
# print
#if move2 > move1:
# usr_fail = (raw_input('I win!!'))
# print usr_fail
#if move2 < move1:
# usr_win = (raw_input('Damn it!'))
# print usr_win
#if move2 == move1
#usr_draw = (raw_input('Draw!!!')
# print usr_draw
Upvotes: 1
Reputation: 41
use dictionaries
loseDic = { 'rock' : 'paper',
'paper' : 'scissors',
'scissors' : 'rock',
}
## Get the human move, chose a random move, bla bla bla...
if robotMove == humanMove:
tie()
elif humanMove == loseDic[robotMove]:
lose()
else:
win()
Upvotes: 4
Reputation: 295
import random
ROCK, PAPER, SCISSORS = 1, 2, 3
names = 'ROCK', 'PAPER', 'SCISSORS'
def beats(a, b):
if (a,b) in ((ROCK, PAPER), (PAPER, SCISSORS), (SCISSORS, ROCK)):
return False
return True
print "Please select: "
print "1 Rock"
print "2 Paper"
print "3 Scissors"
player = int(input ("Choose from 1-3: "))
cpu = random.choice((ROCK, PAPER, SCISSORS))
if cpu != player:
if beats(player, cpu):
print "player won"
else:
print "cpu won"
else:
print "tie!"
print names[player-1], "vs", names[cpu-1]
Upvotes: 7
Reputation: 17004
Inspired by gumuz:
import random
WEAPONS = 'Rock', 'Paper', 'Scissors'
for i in range(0, 3):
print "%d %s" % (i + 1, WEAPONS[i])
player = int(input ("Choose from 1-3: ")) - 1
cpu = random.choice(range(0, 3))
print "%s vs %s" % (WEAPONS[player], WEAPONS[cpu])
if cpu != player:
if (player - cpu) % 3 < (cpu - player) % 3:
print "Player wins"
else:
print "CPU wins"
else:
print "tie!"
Upvotes: 4
Reputation: 101346
Well, you've already imported the random module, that's a start.
Try the random.choice function.
>>> from random import choice
>>> cpu_choice = choice(('rock', 'paper', 'scissors'))
Upvotes: 29