簡體   English   中英

while 循環沒有破壞 python

[英]while loop not breaking python

line1 = (" 1  | 2  | 3 ")
line2 = ("----|----|----")
line3 = (" 4  | 5  | 6 ")
line4 = ("----|----|----")
line5 = (" 7  | 8  | 9 ")

lines = [line1, line2, line3, line4, line5]

answer1 = 0
answer2 = 0
answer3 = 0
answer4 = 0
answer5 = 0

answers1 = [answer1, answer2, answer3, answer4, answer5]

p2answer1 = 0
p2answer2 = 0
p2answer3 = 0
p2answer4 = 0
p2answer5 = 0

answers2 = [p2answer1, p2answer2, p2answer3, p2answer4, p2answer5]

for word in lines:
    print(word)
    
count = 0
count2 = 0
    
while count <= 4:
    
    while True:
        
        count += 1
        
        
        playerinput = int(input())
        
        
        if playerinput == 1:
            line1 = line1.replace('1', 'X')
            lines = [line1, line2, line3, line4, line5]
            if count == 1:
                answer1 = playerinput
            if count == 2:
                answer2 = playerinput
            if count == 3:
                answer3 = playerinput
            if count == 4:
                answer4 = playerinput    
            if count == 5:
                answer5 = playerinput
            answers1 = [answer1, answer2, answer3, answer4, answer5]
                
            for word in lines:
                print(word)
            break    
    

        
        
        if playerinput == 2:
            line1 = line1.replace('2', 'X')
            lines = [line1, line2, line3, line4, line5]
            if count == 1:
                answer1 = playerinput
            if count == 2:
                answer2 = playerinput
            if count == 3:
                answer3 = playerinput
            if count == 4:
                answer4 = playerinput    
            if count == 5:
                answer5 = playerinput     
            answers1 = [answer1, answer2, answer3, answer4, answer5]
            for word in lines:
                print(word)
            break

    
        if playerinput == 3:
            line1 = line1.replace('3', 'X')
            lines = [line1, line2, line3, line4, line5]
            if count == 1:
                answer1 = playerinput
            if count == 2:
                answer2 = playerinput
            if count == 3:
                answer3 = playerinput
            if count == 4:
                answer4 = playerinput    
            if count == 5:
                answer5 = playerinput   
            answers1 = [answer1, answer2, answer3, answer4, answer5]
            for word in lines:
                print(word)
            break


        if playerinput == 4:
            line3 = line3.replace('4', 'X')
            lines = [line1, line2, line3, line4, line5]
            if count == 1:
                answer1 = playerinput
            if count == 2:
                answer2 = playerinput
            if count == 3:
                answer3 = playerinput
            if count == 4:
                answer4 = playerinput    
            if count == 5:
                answer5 = playerinput 
            answers1 = [answer1, answer2, answer3, answer4, answer5]
            for word in lines:
                print(word)
            break

    
        if playerinput == 5:
            line3 = line3.replace('5', 'X')
            lines = [line1, line2, line3, line4, line5]
            if count == 1:
                answer1 = playerinput
            if count == 2:
                answer2 = playerinput
            if count == 3:
                answer3 = playerinput
            if count == 4:
                answer4 = playerinput    
            if count == 5:
                answer5 = playerinput      
            answers1 = [answer1, answer2, answer3, answer4, answer5]
            for word in lines:
                print(word)
            break

    
        if playerinput == 6:
            line3 = line3.replace('6', 'X')
            lines = [line1, line2, line3, line4, line5]
            if count == 1:
                answer1 = playerinput
            if count == 2:
                answer2 = playerinput
            if count == 3:
                answer3 = playerinput
            if count == 4:
                answer4 = playerinput    
            if count == 5:
                answer5 = playerinput        
            answers1 = [answer1, answer2, answer3, answer4, answer5]
            for word in lines:
                print(word)
            break


        if playerinput == 7:
            line5 = line5.replace('7', 'X')
            lines = [line1, line2, line3, line4, line5]
            if count == 1:
                answer1 = playerinput
            if count == 2:
                answer2 = playerinput
            if count == 3:
                answer3 = playerinput
            if count == 4:
                answer4 = playerinput    
            if count == 5:
                answer5 = playerinput     
            answers1 = [answer1, answer2, answer3, answer4, answer5]
            for word in lines:
                print(word)
            break


        if playerinput == 8:
            line5 = line5.replace('8', 'X')
            lines = [line1, line2, line3, line4, line5]
            if count == 1:
                answer1 = playerinput
            if count == 2:
                answer2 = playerinput
            if count == 3:
                answer3 = playerinput
            if count == 4:
                answer4 = playerinput    
            if count == 5:
                answer5 = playerinput    
            answers1 = [answer1, answer2, answer3, answer4, answer5]
            for word in lines:
                print(word)
            break

    
        if playerinput == 9:
            line5 = line5.replace('9', 'X')
            lines = [line1, line2, line3, line4, line5]
            if count == 1:
                answer1 = playerinput
            if count == 2:
                answer2 = playerinput
            if count == 3:
                answer3 = playerinput
            if count == 4:
                answer4 = playerinput    
            if count == 5:
                answer5 = playerinput        
            answers1 = [answer1, answer2, answer3, answer4, answer5]
            for word in lines:
                print(word)
            break

    while True:
        
        count2 += 1
        
        player2input = int(input())
    
        if player2input == 1:
            line1 = line1.replace('1', 'O')
            lines = [line1, line2, line3, line4, line5]
            if count2 == 1:
                p2answer1 = player2input
            if count2 == 2:
                p2answer2 = player2input
            if count2 == 3:
                p2answer3 = player2input
            if count2 == 4:
                p2answer4 = player2input    
            if count2 == 5:
                p2answer5 = player2input   
            answers2 = [p2answer1, p2answer2, p2answer3, p2answer4, p2answer5]
            for word in lines:
                print(word)
            break

        
        
        if player2input == 2:
            line1 = line1.replace('2', 'O')
            lines = [line1, line2, line3, line4, line5]
            if count2 == 1:
                p2answer1 = player2input
            if count2 == 2:
                p2answer2 = player2input
            if count2 == 3:
                p2answer3 = player2input
            if count2 == 4:
                p2answer4 = player2input    
            if count2 == 5:
                p2answer5 = player2input   
            answers2 = [p2answer1, p2answer2, p2answer3, p2answer4, p2answer5]            
            for word in lines:
                print(word)
            break

    
        if player2input == 3:
            line1 = line1.replace('3', 'O')
            lines = [line1, line2, line3, line4, line5]
            if count2 == 1:
                p2answer1 = player2input
            if count2 == 2:
                p2answer2 = player2input
            if count2 == 3:
                p2answer3 = player2input
            if count2 == 4:
                p2answer4 = player2input    
            if count2 == 5:
                p2answer5 = player2input   
            answers2 = [p2answer1, p2answer2, p2answer3, p2answer4, p2answer5]            
            for word in lines:
                print(word)
            break


        if player2input == 4:
            line3 = line3.replace('4', 'O')
            lines = [line1, line2, line3, line4, line5]
            if count2 == 1:
                p2answer1 = player2input
            if count2 == 2:
                p2answer2 = player2input
            if count2 == 3:
                p2answer3 = player2input
            if count2 == 4:
                p2answer4 = player2input    
            if count2 == 5:
                p2answer5 = player2input   
            answers2 = [p2answer1, p2answer2, p2answer3, p2answer4, p2answer5]            
            for word in lines:
                print(word)
            break

    
        if player2input == 5:
            line3 = line3.replace('5', 'O')
            lines = [line1, line2, line3, line4, line5]
            if count2 == 1:
                p2answer1 = player2input
            if count2 == 2:
                p2answer2 = player2input
            if count2 == 3:
                p2answer3 = player2input
            if count2 == 4:
                p2answer4 = player2input    
            if count2 == 5:
                p2answer5 = player2input   
            answers2 = [p2answer1, p2answer2, p2answer3, p2answer4, p2answer5]            
            for word in lines:
                print(word)
            break

    
        if player2input == 6:
            line3 = line3.replace('6', 'O')
            lines = [line1, line2, line3, line4, line5]
            if count2 == 1:
                p2answer1 = player2input
            if count2 == 2:
                p2answer2 = player2input
            if count2 == 3:
                p2answer3 = player2input
            if count2 == 4:
                p2answer4 = player2input    
            if count2 == 5:
                p2answer5 = player2input   
            answers2 = [p2answer1, p2answer2, p2answer3, p2answer4, p2answer5]            
            for word in lines:
                print(word)
            break


        if player2input == 7:
            line5 = line5.replace('7', 'O')
            lines = [line1, line2, line3, line4, line5]
            if count2 == 1:
                p2answer1 = player2input
            if count2 == 2:
                p2answer2 = player2input
            if count2 == 3:
                p2answer3 = player2input
            if count2 == 4:
                p2answer4 = player2input    
            if count2 == 5:
                p2answer5 = player2input   
            answers2 = [p2answer1, p2answer2, p2answer3, p2answer4, p2answer5]            
            for word in lines:
                print(word)
            break


        if player2input == 8:
            line5 = line5.replace('8', 'O')
            lines = [line1, line2, line3, line4, line5]
            if count2 == 1:
                p2answer1 = player2input
            if count2 == 2:
                p2answer2 = player2input
            if count2 == 3:
                p2answer3 = player2input
            if count2 == 4:
                p2answer4 = player2input    
            if count2 == 5:
                p2answer5 = player2input   
            answers2 = [p2answer1, p2answer2, p2answer3, p2answer4, p2answer5]            
            for word in lines:
                print(word)
            break

    
        if player2input == 9:
            line5 = line5.replace('9', 'O')
            lines = [line1, line2, line3, line4, line5]
            if count2 == 1:
                p2answer1 = player2input
            if count2 == 2:
                p2answer2 = player2input
            if count2 == 3:
                p2answer3 = player2input
            if count2 == 4:
                p2answer4 = player2input    
            if count2 == 5:
                p2answer5 = player2input   
            answers2 = [p2answer1, p2answer2, p2answer3, p2answer4, p2answer5]            
            for word in lines:
                print(word)
            break

我正在嘗試在 python 中創建井字游戲。 現在,當用戶輸入內容時,一切都打印出來並且工作正常,但是在用戶輸入所有輸入后,表格已滿,由於某種原因,程序仍然要求輸入,所以您仍然可以輸入數字。 它不打印任何東西,但它仍然很煩人。 我怎樣才能解決這個問題?

因為您在第 5 回合結束時停止,而玩家 2 只有 4 回合可玩,因為網格上有 9 個位置。 所以最后一個輸入是讓玩家 2 最后一次播放一個。

還請重構此代碼! 它的作用太長了

就像是:

for i in range(1, 9):
    player = "x" if i % 2 == 0 else "o"
    playerinput = int(input())
    update_grid(grid, player, playerinput)
    if is_game_finished(grid):
         print(f"Player {player} has won")
         break

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM