我有点像新手,我在我的井字游戏中制作了一行代码来打印 100 行新行,这样板子的历史记录就不会显示



我是一个新手,我在井字游戏中制作了一行代码来打印100行新行,这样棋盘的历史记录就不会显示了,现在的问题是,它说该轮到谁的字符串不会显示,因为它在100行以上。我试着做了一些改变,但没有成功。

def display_board(board):
print("n"*100)
print("""
▀█▀ █ █▀▀   ▀█▀ ▄▀█ █▀▀   ▀█▀ █▀█ █▀▀
░█░ █ █▄▄   ░█░ █▀█ █▄▄   ░█░ █▄█ ██▄
█▀▀ ▄▀█ █▀▄▀█ █▀▀
█▄█ █▀█ █░▀░█ ██▄""")
print("n"*1)
print(board[7]+"|"+board[8]+"|"+board[9])
print("-----")
print(board[4]+"|"+board[5]+"|"+board[6])
print("-----")
print(board[1]+"|"+board[2]+"|"+board[3])
def place_marker(board):
marker = " "
while marker != "x" and marker != "o":
marker = input("Player 1, choose x or o: ")
player1 = marker    
if player1 == "x":
player2 = "o"       
print("""   
|------------------------------------|
| Player 1 is now X and player 2 is O|   
|------------------------------------|  
""")       
else:
player2 = "x"  
print("""   
|------------------------------------|
| Player 1 is now O and player 2 is X| 
|------------------------------------|
""")      
#Input of the player
count = 0   
for a in range(9):
count += 1
display_board(board)
position = int(input("Choose a number between 1-9: "))
board[position] = marker

if board[1] == board[2] == board[3] != ' ':
win_check = str(board[1] + " HAS WON !!!")
print(win_check)
break
elif board[1] == board[5] == board[9] != ' ':
variabila1 = str(board[1] + " HAS WON !!!")
print(variabila1)
break
elif board[7] == board[8] == board[9] != ' ':
variabila2 = str(board[7] + " HAS WON !!!")
print(variabila2)
break
elif board[7] == board[5] == board[3] != ' ':
variabila3 = str(board[7] + " HAS WON !!!")
print(variabila3)
break
elif board[1] == board[4] == board[7] != ' ':
variabila4 = str(board[1] + " HAS WON !!!")
print(variabila4)
break
elif board[3] == board[6] == board[9] != ' ':
variabila5 = str(board[3] + " HAS WON !!!")
print(variabila5)
break
elif count == 9:
print("THIS IS A TIE")
#if statement pentru a schimba markeru dupa fiecare mutare
if marker =="x":
marker = "o" 
print("Now it's (O)'s turn : ") 
else:
marker = "x"
print("Now it's (X)'s turn : ")   

return(a)
return (player1,player2)
place_marker(board)

#restart function
def clear_board(board):

restart = input("Would you like to play again?:nyes/no: ")
while restart == "yes":
board = [" "]*10
place_marker(board)
clear_board(board)
else:
restart == "no"
print("Hope you enjoyed it!!!")
if __name__ == "__main__":
clear_board(board)```

您正在place_marker函数中调用display_boarddisplay_board函数打印出100个换行符。我建议你在游戏结束后需要重新启动时打印100条换行符。也许在这里:


#restart function
def clear_board(board):
print("n"*100)
restart = input("Would you like to play again?:nyes/no: ")
while restart == "yes":
board = [" "]*10
place_marker(board)
clear_board(board)
else:
restart == "no"
print("Hope you enjoyed it!!!")

我很困惑为什么你在clear_board函数中也使用while循环,你可能是指if restart=="yes"

最新更新