剪刀石头布-Python 3-初学者 [英] Rock Paper Scissors - Python 3 - beginner

查看:141
本文介绍了剪刀石头布-Python 3-初学者的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想模拟一个石头剪刀布游戏,这就是我到目前为止所掌握的.这不是让我在scoregame函数中输入字母.我该如何解决?

I'm suppose to simulate a rock paper scissors game and this is what I have so far. It's not letting me input letters into the scoregame function. How can I fix this?

def scoregame(player1, player2):
    if player1 == R and player2 == R:
        scoregame = "It's a tie, nobody wins."
    if player1 == S and player2 == S:
        scoregame == "It's a tie, nobody wins."
    if player1 == P and player2 == P:
        scoregame = "It's a tie, nobody wins."
    if player1 == R and player2 == S:
        scoregame = "Player 1 wins."
    if player1 == S and player2 == P:
        scoregame = "Player 1 wins."
    if player1 == P and player2 == R:
        scoregame = "Player 1 wins."
    if player1 == R and player2 == P:
        scoregame == "Player 2 wins."
    if player1 == S and player2 == R:
        scoregame == "Player 2 wins."
    if player1 == P and player2 == S:
        scoregame = "Player 2 wins."

print(scoregame)

推荐答案

您需要针对字符串进行测试;您现在正在针对变量名进行测试:

You need to test against strings; you are now testing against variable names:

if player1 == 'R' and player2 == 'R':

但是您可以通过测试两个玩家是否相等来简化他们选择相同选项的情况:

but you can simplify the case where both players picked the same option by testing if they are equal:

if player1 == player2:
    scoregame = "It's a tie, nobody wins."

接下来,我将使用一个映射,一个字典来整理出什么胜过什么:

Next, I'd use a mapping, a dictionary, to codify what beats what:

beats = {'R': 'S', 'S': 'P', 'P': 'R'}

if beats[player1] == player2:
    scoregame = "Player 1 wins."
else:
    scoregame = "Player 2 wins."

现在您的游戏可以通过2个测试进行测试.全部放在一起:

Now your game can be tested in just 2 tests. All put together:

def scoregame(player1, player2):
    beats = {'R': 'S', 'S': 'P', 'P': 'R'}
    if player1 == player2:
        scoregame = "It's a tie, nobody wins."
    elif beats[player1] == player2:
        scoregame = "Player 1 wins."
    else:
        scoregame = "Player 2 wins."
    print(scoregame)

这篇关于剪刀石头布-Python 3-初学者的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆