接受的列表为:
[[“_”,”_”,”_”]
[“_”,”_”,”_”]
[“_”,”_”,”_”]]
def checkWin():
a=[]
b=[]
c=[]
if a[0]==a[1]==a[2]:
return True
if a[0]==b[0]==c[0]:
return True
if b[0]==b[1]==b[2]:
return True
if c[0]==c[1]==c[2]:
return True
if a[1]==b[1]==c[1]:
return True
if a[2]==b[2]==c[2]:
return True
if a[0]==b[1]==c[2]:
return True
if c[0]==b[1]==a[2]:
return True
else:
return False
上述代码报错:checkWin() takes 0 positional arguments but 1 was given
checkWin 函数要接受一个列表为参数,你要先判断包含相同的符号不是“_”才行,不能三个“_”也返回True
你题目的解答代码如下:
def checkWin(li):
a=li[0]
b=li[1]
c=li[2]
if a[0]!='_' and a[0]==a[1]==a[2]:
return True
if a[0]!='_' and a[0]==b[0]==c[0]:
return True
if b[0]!='_' and b[0]==b[1]==b[2]:
return True
if c[0]!='_' and c[0]==c[1]==c[2]:
return True
if a[1]!='_' and a[1]==b[1]==c[1]:
return True
if a[2]!='_' and a[2]==b[2]==c[2]:
return True
if a[0]!='_' and a[0]==b[1]==c[2]:
return True
if c[0]!='_' and c[0]==b[1]==a[2]:
return True
else:
return False
print(checkWin([
['_','_','_'],
['_','X','O'],
['_','X','O']
]))
print(checkWin([
['X','_','_'],
['_','X','O'],
['_','O','X']
]))
print(checkWin([
['_','O','X'],
['_','O','_'],
['_','O','X']
]))
print(checkWin([
['X','_','_'],
['O','O','X'],
['X','X','O']
]))
print(checkWin([
['_','X','O'],
['X','O','_'],
['O','_','_']
]))
如有帮助,望采纳!谢谢!
def Win(pl):
p1 = pl[0]
p2 = pl[1]
p3 = pl[2]
# 判断竖列相等
for i in range(3):
if (p1[i] == 'X' or p1[i] == 'O') and p1[i] == p2[i] and p1[i] == p3[i] :
return True
# 判断横列相等
for p in pl:
if (p[0] == 'X' or p[0] == 'O') and p[0] == p[1] and p[0] == p[2]:
return True
# 判断左交叉相等
if (p1[0] == 'X' or p1[0] == 'O') and p1[0] == p2[1] and p1[0] == p3[2]:
return True
# 判断右交叉相等
if (p1[2] == 'X' or p1[2] == 'O') and p1[2] == p2[1] and p1[2] == p3[0]:
return True
# 否则返回False
return False
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!