写一个简单的"岩石剪刀"游戏机器人

Tes*_*est 6 python

这就是我为我的摇滚剪刀游戏提出的:

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!"
Run Code Online (Sandbox Code Playgroud)

而我想要的程序是随机选择三个选项中的一个(石头剪刀),无论用户输入什么.我怎么能做到这一点?

syk*_*ora 29

好吧,你已经导入了随机模块,这是一个开始.

尝试random.choice函数.

>>> from random import choice
>>> cpu_choice = choice(('rock', 'paper', 'scissors'))
Run Code Online (Sandbox Code Playgroud)


gum*_*muz 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]
Run Code Online (Sandbox Code Playgroud)

  • 你的节拍功能有点笨重...为什么不只是"返回(a,b)in((纸张,摇滚),(剪刀,纸张),(剪刀,摇滚))"? (3认同)