You are on page 1of 1

def FJudge(aX, aA, aB, aC):

aX, aA, aB, aC = str(aX), str(aA), str(aB), str(aC)


return aX * 3 == aA + aB + aC

def DiagJudge(aX, aField):


return FJudge(aX, aField[0], aField[4], aField[8]) or FJudge(aX, aField[6],
aField[4], aField[2])

def GetWinner(aField):
xW, oW = DiagJudge(1, aField), DiagJudge(2, aField)
if not(xW or oW):
a = b = c = None
for i in range(3):
a, b, c = aField[i*3], aField[i*3+1], aField[i*3+2] # horizontal:
index * 3 + order
xW = FJudge(1, a, b, c)
if xW: break # cpu rulz
oW = FJudge(2, a, b, c)
if oW: break # cpu rulz
if not(xW or oW):
a, b, c = aField[i], aField[i+3], aField[i+6] # vertical:
index, index + 3, index + 6 (we don't need math here)
xW = FJudge(1, a, b, c)
if xW: break # cpu rulz
oW = FJudge(2, a, b, c)
if xW or oW: break
return 0 if not (xW or oW) else 1 if xW else 2

# now to do the.. STUFF!


wT = ["No one", "X", "O"]
wI = GetWinner([
1, 0, 1,
0, 2, 0,
1, 1, 1
])

print("%s has won!" % wT[wI])

You might also like