爱丽丝和鲍勃在玩石头剪刀布游戏
输入规范 第一行包含一个整数N(1)≤N≤100)表示游戏的数量。 第二行是Alice的形状序列,第三行是Bob的形状序列
输出规格 由空格分隔的两个整数,表示Alice赢得的游戏数和Bob赢得的游戏数
我首先使用.split()在列表中创建Alice和Bob的形状,然后为每个可能的场景设置一组elif和if语句。但是我遇到的问题是,如果我输入
3
rock rock rock
rock rock paper
我得到的不是输出0, 1
,而是0,0
,我似乎不明白为什么。下面是我的代码
games = input()
alice = input()
bob = input()
alice = alice.split()
bob = bob.split()
awin = []
bwin = []
a = 0
while a < len(alice):
for i in range(len(alice)):
if alice[i] == "rock" and bob[i] == "rock":
break
elif alice[i] == "scissors" and bob[i] == "scissors":
break
elif alice[i] == "paper" and bob[i] == "paper":
break
elif alice[i] == "rock" and bob[i] == "scissors":
awin.append('rock beat scissors')
break
elif alice[i] == "rock" and bob[i] == "paper":
bwin.append('paper beat rock')
break
elif alice[i] == "paper" and bob[i] == "rock":
awin.append('paper beat rock')
break
elif alice[i] == "paper" and bob[i] == "scissors":
bwin.append('scissors beat paper')
break
elif alice[i] == "scissors" and bob[i] == "paper":
awin.append('scissors beat paper')
break
elif alice[i] == "scissors" and bob[i] == "rock":
bwin.append('rock beat scissors')
break
i += 1
a+=1
print('output:')
print(awin)
print(bwin)
print(str(len(awin)) + " " + str(len(bwin)))
其他人对原始代码给出了一些指导。我只是想提供一种更“pythonic”的替代方法……因为编写这样的游戏会有点乐趣
此实现与原始问题中的代码不同,但具有以下优点:遵循游戏在现实生活中的流程
下面是代码的简化版本:
相关问题 更多 >
编程相关推荐