Changing variable value inside function for outside

Viewed 40
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]

for word in lines:
    print(word)     


def player_turn():

    global line1
    global line3
    global line5
    
    global answer1
    global answer2
    global answer3
    global answer4
    global answer5

    count = 0
    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)



    
    
    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)
        


    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)
        


    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)
        


    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)
        


    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)
        


    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)
        


    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)
        


    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)
            

def function():
    win1 = [1, 2, 3]
    win2 = [1,4,7]
    win3 = [1,5,9]
    win4 = [2,5,8]
    win5 = [3,6,9]
    win6 = [3,5,7]
    win7 = [4,5,6]
    win8 = [7,8,9]
    
    win = [win1, win2, win3, win4, win5, win6, win7, win8]
    
    
    win1common1 = set(answers1).intersection(win1)
    
    win1common = len(win1common1)
    
    win2common1 = set(answers1).intersection(win2)
    
    win2common = len(win2common1)
    
    win3common1 = set(answers1).intersection(win3)
    
    win3common = len(win3common1)
    
    win4common1 = set(answers1).intersection(win4)
    
    win4common = len(win4common1)
    
    win5common1 = set(answers1).intersection(win5)
    
    win5common = len(win5common1)
    
    win6common1 = set(answers1).intersection(win6)
    
    win6common = len(win6common1)
    
    win7common1 = set(answers1).intersection(win7)
    
    win7common = len(win7common1)
    
    win8common1 = set(answers1).intersection(win8)
    
    win8common = len(win8common1)

    if (win1common or win2common or win3common or win4common or win5common or win6common or win7common or win8common == 3):
        print("X win")
    
    elif (win1common or win2common or win3common or win4common or win5common or win6common or win7common or win8common != 3):
        print("X lose")


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




for i in range(0, 9):
    player_turn()
    function()
    print(answers1)

I am trying to create tic tac toe. To win the game, I have set up all the possible win scenarios and I am telling the code to see if there is a match. Problem is, I have answer = 0 outside of the function and inside the function, I change its value. This means that when I get to the end of the code, it still equals 0. How can I make it so that it keeps the new value it got inside the function.

0 Answers
Related