Я пытался решить этот код последние несколько дней, где, если я по ошибке поместил свой символ («x» или «o») в индекс, уже содержащий символ, тогда он должен отобразить сообщение «индекс уже заполнен! ", проблема в том, что это сообщение отображается даже для незаполненных индексов. Я новичок, пожалуйста, помогите мне с этим кодом и, пожалуйста, ответьте на мой вопрос своим кодом, так как я плохо разбираюсь в Engli sh.
import numpy
board=numpy.array([["-","-","-"],["-","-","-"],["-","-","-"]])
numpy.matrix(board)
def pos(row,col,symbol,altr):
while(board[row][col]==symbol or board[row][col]==altr):
print("index already filled")
place(symbol,altr)
board[row][col]=symbol
return board
def place(symbol,altr):
c=int(input("enter index: "))
if(c==1):
return pos(0,0,symbol,altr)
elif(c==2):
return pos(0,1,symbol,altr)
elif(c==3):
return pos(0,2,symbol,altr)
elif(c==4):
return pos(1,0,symbol,altr)
elif(c==5):
return pos(1,1,symbol,altr)
elif(c==6):
return pos(1,2,symbol,altr)
elif(c==7):
return pos(2,0,symbol,altr)
elif(c==8):
return pos(2,1,symbol,altr)
elif(c==9):
return pos(2,2,symbol,altr)
def won(symbol):
return check_rows(symbol) or check_cols(symbol) or check_diagnols(symbol)
def check_rows(symbol):
for i in range(3):
count=0
for j in range(3):
if(board[i][j]==symbol):
count+=1
if(count==3):
return True
else:
return False
def check_cols(symbol):
for j in range(3):
count=0
for i in range(3):
if(board[i][j]==symbol):
count+=1
if(count==3):
return True
else:
return False
def check_diagnols(symbol):
if(board[0][0]==board[1][1] and board[1][1]==board[2][2] and board[2][2]==symbol):
return True
if(board[0][2]==board[1][1] and board[1][1]==board[2][0] and board[2][0]==symbol):
return True
return False
def play():
p1=input("player1,enter your name: ")
p2=input("player2,enter your name: ")
pl1="x"
pl2="o"
i=0
while(i<9):
if(i%2==0):
print(board)
print(p1,"your turn")
place(pl1,pl2)
if(won(pl1)):
print(board)
print(p1,"you won")
break
else:
if(i%2==1):
print(board)
print(p2,"your turn")
place(pl2,pl1)
if(won(pl2)):
print(board)
print(p2,"you won")
break
i+=1
if not won(pl1) and not won(pl2):
print(board)
print("draw")