简单的石头,布,剪刀游戏[Python]

2024-06-07 09:16:35 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图写一个简单的RPS游戏,但我有麻烦让程序显示游戏的结果。请注意,我是一个完全的编程初学者,我写的所有这些都是从我以前学到的,所以这可能不是编写这样一个游戏最有效的方法。在

import random
rps = ['rock', 'paper', 'scissors']
rps2 = (random.choice(rps))

print 'Welcome to RPS'
print 'Press 1 to pick Rock'
print 'Press 2 to pick Paper'
print 'Press 3 to pick Scissors'
print 'Press 4 to quit.'


while True:
    game = int(raw_input('What do you pick? '))
    if game == 1:
        print 'You picked rock.'
        print 'The computer picked...' + (random.choice(rps))
        if rps2 == [0]:
            print 'It\'s a tie!'
        elif rps2 == [1]:
            print 'You lose!'
        elif rps2 == [2]:
            print 'You win!'
    elif game == 2:
        print 'You picked paper.'
        print 'The computer picked...' + (random.choice(rps))
        if rps2 == [0]:
            print 'You win!'
        elif rps2 == [1]:
            print 'It\'s a tie!'
        elif rps2 == [2]:
            print 'You lose!'
    elif game == 3:
        print 'You picked scissors.'
        print 'The computer picked...' + (random.choice(rps))
    if rps2 == [0]:
        print 'You lose!'
    elif rps2 == [1]:
        print 'You win!'
    elif rps2 == [2]:
        print 'It\'s a tie!'
    elif game == 4:
        print 'Thank you for playing!'
        break
    else:
        continue

Tags: thetoyougame游戏ifrandompress
2条回答

相比之下,问题在于:

    if rps2 == [0]:
        print 'It\'s a tie!'
    elif rps2 == [1]:
        print 'You lose!'
    elif rps2 == [2]:
        print 'You win!'

你应该写下来

^{pr2}$

因为你想访问rps列表。在

你也有错误的缩进。我改成这样:

import random
rps = ['rock', 'paper', 'scissors']
rps2 = (random.choice(rps))

print 'Welcome to RPS'
print 'Press 1 to pick Rock'
print 'Press 2 to pick Paper'
print 'Press 3 to pick Scissors'
print 'Press 4 to quit.'


while True:
    game = int(raw_input('What do you pick? '))
    if game == 1:
        print 'You picked rock.'
        print 'The computer picked...' + (random.choice(rps))
        if rps2 == rps[0]:
            print 'It\'s a tie!'
        elif rps2 == rps[1]:
            print 'You lose!'
        elif rps2 == rps[2]:
            print 'You win!'
    elif game == 2:
        print 'You picked paper.'
        print 'The computer picked...' + (random.choice(rps))
        if rps2 == rps[0]:
            print 'You win!'
        elif rps2 == rps[1]:
            print 'It\'s a tie!'
        elif rps2 == rps[2]:
            print 'You lose!'
    elif game == 3:
        print 'You picked scissors.'
        print 'The computer picked...' + (random.choice(rps))
        if rps2 == rps[0]:
            print 'You lose!'
        elif rps2 == rps[1]:
            print 'You win!'
        elif rps2 == rps[2]:
            print 'It\'s a tie!'
    elif game == 4:
        print 'Thank you for playing!'
        break
    else:
        continue

经过测试。在

你的程序没什么意义

    print 'The computer picked...' + (random.choice(rps))

rps中选取一个随机元素,因此'rock'paper或{}。但你只需打印这个元素,而不保存它。在

然后,比较第一次询问用户之前随机选择的元素:

^{pr2}$

这没道理。您正在比较一个字符串(一个rps的元素)和一个只有0元素的列表。在

你可能想做的是

while True:
    game = int(raw_input('What do you pick? '))
    if game == 1:
        print 'You picked rock.'
        computerpick = random.choice(rps)
        print 'The computer picked...' + computerpick
        if computerpick == 'rock':
            print 'It\'s a tie!'
        elif computerpick == 'paper':
            print 'You lose!'
        elif rps2 == 'scissors':
            print 'You win!'
  ...

相关问题 更多 >

    热门问题