到目前为止,我的代码是这样的:
while True:
"""
determines if there is a list of x's or o's in a horizontal row
"""
game = list(input())
if len(game) == 0:
print("We should now check for vertical or diagonal winners!")
elif game[0] == game[1]:
if game[1] == game[2]:
if game[2] == game[3]:
if game[3] == game[4]:
if game[4] == game[5]:
if game[5] == game[6]:
if game[6] == game[7]:
if game[7] == game[8]:
if game[8] == game[9]:
if game[9] == game[10]:
if game[10] == game[11]:
if game[11] == game[12]:
if game[12] == "o":
print("Player o won")
else:
print("Player x won")
else:
del game[0:12]
else:
del game[0:12]
else:
del game[0:12]
else:
del game[0:12]
else:
del game[0:12]
else:
del game[0:12]
else:
del game[0:12]
else:
del game[0:12]
else:
del game[0:12]
else:
del game[0:12]
else:
del game[0:12]
else:
del game[0:12]
我觉得一定有更短的写法。我只想到了一种确定水平赢家的方法。我不知道如何解决垂直或对角线赢家的问题。我还测试了这段代码,当x在第二行获胜时,它没有打印出x获胜,所以我想知道我的错误在哪里?
非常感谢任何帮助!谢谢。
lst
中的所有字符是否都等于ch
(我们称此函数为all_are(lst, char)
)与说lst[0] == ch and all_are(lst[1:], ch)
是相同的;因此您可以通过递归来解决这个问题。