我正在制作一款剪刀石头布游戏,看起来很简单,但我在打印剪刀、石头和纸的ASCII图像时遇到了一个问题,我将其合并到列表中。代码看起来像这样:
import random
rock = '''
_______
---' ____)
(_____)
(_____)
(____)
---.__(___)
'''
paper = '''
_______
---' ____)____
______)
_______)
_______)
---.__________)
'''
scissors = '''
_______
---' ____)____
______)
__________)
(____)
---.__(___)
'''
rps_list = rock+paper+scissors
player = int(input("What do you choose? Type 0 for Rock, 1 for Paper or 2 for Scissors.: "))
computer = random.randint(0,2)
print(rps_list[player])
print(rps_list[copmuter])
之后,我有一些if函数来确定游戏的结果,但困扰我的是,当我使用打印函数和列表内的ASCII艺术列表时,我无法获得输出工作,我不明白为什么。如果我只使用例如
print(rock)
print(scissors)
print(paper)
我把精美的艺术品印出来,但不是用我自己的方式。我做错了什么?
rock+paper+scissors
是字符串拼接。
使用rps_list = [rock, paper, scissors]
您需要将rps_list
设置为如下列表
rps_list = [rock, paper, scissors]
这是因为rock
,paper
和scissors
是字符串,您尝试将它们全部添加。
在python中'Hello'+'hi' = 'hellohi'
。这叫做字符串拼接。
import random
rock = '''
_______
---' ____)
(_____)
(_____)
(____)
---.__(___)
'''
paper = '''
_______
---' ____)____
______)
_______)
_______)
---.__________)
'''
scissors = '''
_______
---' ____)____
______)
__________)
(____)
---.__(___)
'''
rps_list = [rock,paper,scissors]
player = int(input("What do you choose? Type 0 for Rock, 1 for Paper or 2 for Scissors.: "))
computer = random.randint(0,2)
print(rps_list[player])
print(rps_list[computer])
还有一种方法可以将rock
,paper
和scissors
更改为列表,然后添加它们。
import random
rock = ['''
_______
---' ____)
(_____)
(_____)
(____)
---.__(___)
''']
paper = ['''
_______
---' ____)____
______)
_______)
_______)
---.__________)
''']
scissors = ['''
_______
---' ____)____
______)
__________)
(____)
---.__(___)
''']
rps_list = rock+paper+scissors
player = int(input("What do you choose? Type 0 for Rock, 1 for Paper or 2 for Scissors.: "))
computer = random.randint(0,2)
print(rps_list[player])
print(rps_list[computer])