关于我想做一个关于输出九宫格所有可能的程序,但这程序有点问题,请各位看一下。
'''
scene:
1 2 3first
1n n n
2n n n
3n n n
next
0=None 1=black 2=white
colour:
True=black
False=white
'''
#?
def win(scene,colour):
if(scene[1][1]==colour and scene[1][2]==colour and scene[1][3]==colour):return True
if(scene[2][1]==colour and scene[2][2]==colour and scene[2][3]==colour):return True
if(scene[3][1]==colour and scene[3][2]==colour and scene[3][3]==colour):return True
if(scene[1][1]==colour and scene[2][1]==colour and scene[3][1]==colour):return True
if(scene[1][2]==colour and scene[2][2]==colour and scene[3][2]==colour):return True
if(scene[1][3]==colour and scene[2][3]==colour and scene[3][3]==colour):return True
if(scene[1][3]==colour and scene[2][2]==colour and scene[3][1]==colour):return True
if(scene[1][1]==colour and scene[2][2]==colour and scene[3][3]==colour):return True
return False
#ok
def number(scene):
N=0
for f in range(1,4):
for n in range (1,4):
if scene[f][n]==1 or scene[f][n]==2:
N+=1
return N
#ok
def nbw(colour):
if colour==0:
print("n",end=" ")
elif colour==1:
print("b",end=" ")
else:
print("w",end=" ")
return;
#ok
def colour_change(colour):
if colour==1:
return 2
else:
return 1
def next(scene,colour):
Scene=scene
for f in range(1,4):
for n in range(1,4):
if scene[f][n]==0:
Scene[f][n]=colour
else:
continue
#-------------------------------------------------ok
for F in range(1,4):
for i in range(number(Scene)):
print("",end="\t")
for N in range(1,4):
nbw(Scene[F][N])
print("\n",end="")
#--------------------------------------------------
if win(Scene,colour):
if colour==1:
print("Black",end=" ")
else:
print("White",end=" ")
print("win!",end="\n")
return
else:
next(Scene,colour_change(colour))
Scene=scene
SCENE=[[0,0,0,0],
[0,0,0,0],
[0,0,0,0],
[0,0,0,0]]
next(SCENE,1)
结果: