def checkwin():
if checkcolumn(board) or checkdiagonal(board) or checkrow(board):
print(f"The winner is {winner}")
def checktie(board):
# If no blank spaces("-") check it is a tie
global gamerunning
if "-" not in board and :
printboard(board)
print("It is a tie!")
gamerunning = False
I'm trying to add a statement after and in the function checktie() to see if the statement "The winner is {winner}" is posted then we should ignore the checktie() function.
I tried inserting a boolean value to checkwin() but can't call it in the checktie() function
CodePudding user response:
The function needs to actually return a result:
def checkwin():
return checkcolumn(board) or checkdiagonal(board) or checkrow(board)
Then you could do:
if "-" not in board and not checkwin():
However, you may want to rework your script because I don't know why checktie() would call checkwin() when whatever code is calling checktie() could simply call checkwin() itself. For example:
if checkwin():
print(f"The winner is {winner}")
gamerunning = False
elif checktie(my_board): # This would need to return a boolean too.
print("It is a tie!")
gamerunning = False
else:
# Continue game
CodePudding user response:
You can use another variable to determine the result.
has_won = False
def checkwin():
global has_won
if checkcolumn(board) or checkdiagonal(board) or checkrow(board):
print(f"The winner is {winner}")
has_won = True
def checktie(board):
# If no blank spaces("-") and no winner is declared, check it is a tie
global gamerunning
if "-" not in board and not has_won:
printboard(board)
print("It is a tie!")
gamerunning = False
