【发布时间】:2018-04-19 19:06:21
【问题描述】:
找出井字游戏获胜者的代码
我编写了以下函数来查找 tictactoe 获胜者
输入变量以列表形式提供,并将以下面提供的形式提供
示例:
tictactoe(["OO.","XOX","XOX"])
编写的函数如下:
我确信这不是最优雅的编写方式,并且正在寻找更多建议
import numpy as np
def (game_result):
a=[]
for i in range(len(game_result)):
for i in game_result[i]:
print (i)
a.append(i)
print (a)
myarray=np.asarray(a)
c=myarray.reshape(3,3)
print (c)
c1=(c[0,0] == c[0,1] == c[0,2] != ('.'))
c2=(c[1,0] == c[1,1] == c[1,2]!= ('.'))
c3=(c[2,0] == c[2,1] == c[2,2] != ('.'))
c4=(c[0,0] == c[1,0] == c[2,0]!= ('.'))
c5=(c[0,1] == c[1,1] == c[2,1] != ('.'))
c6=(c[0,2] == c[1,2] == c[2,2]!= ('.'))
c7=(c[1,1] == c[2,2] == c[0,0]!= ('.'))
c8=(c[0,2] == c[1,1] == c[2,0]!= ('.'))
if (c1):
return c[0,0]
elif (c2) :
return c[1,0]
elif (c3) :
return c[2,0]
elif (c4) :
return c[0,0]
elif (c5) :
return c[0,1]
elif (c6) :
return c[0,2]
elif (c7) :
return c[1,1]
elif (c8) :
return c[1,1]
else :
return 'D'
【问题讨论】:
-
为什么不使用二进制数组?
-
输入方式固定,以列表字符串的形式提供