Python练习:石头剪刀布

题目

我们来玩吧!你必须返回获胜的玩家!如果平局则返回 Draw! 。

示例(输入 1,输入 2 --> 输出):

"scissors 剪刀", "paper 布" --> "Player 1 won!"
"scissors 剪刀", "rock 石头" --> "Player 2 won!"
"paper 布", "paper 布" --> "Draw!"

代码

def rps(p1, p2):
    if p1 == p2:
        return "Draw!"
    elif p1 == "rock":
        if p2 == "scissors":
            return "Player 1 won!"
        else:
            return "Player 2 won!"
    elif p1 == "scissors":
        if p2 == "paper":
            return "Player 1 won!"
        else:
            return "Player 2 won!"
    else:
        if p2 == "rock":
            return "Player 1 won!"
        else:
            return "Player 2 won!"

# 使用字典来存储石头剪刀布游戏的胜负规则。字典的键是玩家的选择,值是可以击败该选择的选择。
def rps(p1, p2):
    beats = {'rock': 'scissors', 'scissors': 'paper', 'paper': 'rock'}
    if beats[p1] == p2:
        return "Player 1 won!"
    if beats[p2] == p1:
        return "Player 2 won!"
    return "Draw!"

知识点:

  1. 字典:在Python中,字典是一种可变容器模型,可以存储任意类型对象。字典的每个键值对都用冒号 ":" 分割,每个对之间用逗号 "," 分割,整个字典包括在花括号 "{}" 中。在这个函数中,beats 是一个字典,它映射了每个选项("rock"、"scissors" 和 "paper")到它可以击败的选项。

  2. 索引:在Python中,你可以使用方括号 "[]" 来访问字典中的元素。在这个函数中,使用 beats[p1] 和 beats[p2] 来获取 p1 和 p2 可以击败的选项。

测试

import codewars_test as test
from solution import rps

@test.describe("rock paper scissors")
def basic_tests():
    @test.it("Player 1 wins")
    def player_1():
        test.assert_equals(rps('rock', 'scissors'), "Player 1 won!")
    @test.it("Player 1 wins")
    def player_1():
        test.assert_equals(rps('scissors', 'rock'), "Player 2 won!")
    @test.it("Draw")
    def draw():
        test.assert_equals(rps('rock', 'rock'), 'Draw!')

文章作者: waino
本文链接:
版权声明: 本站所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 VLLLO.COM
技术分享 Python coding
喜欢就支持一下吧