这就是我为摇滚剪刀游戏提出的建议:
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!"
我希望程序做的是随时选择三个选项中的一个(摇滚剪刀),无论用户输入什么。我怎么能做到这一点?
答案 0 :(得分:29)
好吧,你已经导入了随机模块,这是一个开始。
尝试random.choice功能。
>>> from random import choice
>>> cpu_choice = choice(('rock', 'paper', 'scissors'))
答案 1 :(得分:7)
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]
答案 2 :(得分:4)
受到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!"
答案 3 :(得分:4)
使用词典
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()
答案 4 :(得分:1)
不是专家,但这是我到目前为止所使用的__name__ == '__main__'
语句可能会有所帮助,如果您需要计算机来生成答案并保持其简洁明了。
没有解决方案。
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
答案 5 :(得分:0)
如果有人喜欢玩“原始学校操场规则”,则以3胜1获胜。
import random
x = ["Rock", "Paper", "Scissors"]
computer_score = 0
my_score = 0
z = ""
y = ""
while computer_score <= 3 and my_score <= 3:
z = input("Rock, Paper or Scissors: ")
y = random.choice(x)
print(y)
if z == "Rock" and y == "Scissors":
my_score += 1
elif z == "Paper" and y == "Rock":
my_score += 1
elif z == "Scissors" and y == "Paper":
my_score += 1
elif z == y:
my_score = my_score
computer_score = computer_score
else:
computer_score += 1
print("Computer: {}".format(computer_score))
print("Me: {}".format(my_score))
if computer_score == 3:
print("The computer wins!")
break
elif my_score == 3:
print("You win!")
break
答案 6 :(得分:-6)
尝试以下方法:
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")
我认为这可行