Problem ze zmianą zmiennej w pętli while

0

Cześć,
mam problem ponieważ nie działa mi zmiana zmiennej stopGame na wartość False. Z czego to wynika?

stopGame = True
      
    while stopGame:                                                                                     #and len(listaSprawdzajaca) != 9
        wspX = input('\nGracz 1\nPodaj współrzędne punktu: ')
        wspPlayerOneX = list(map(int, wspX.split(',')))
        if game[wspPlayerOneX[0]][wspPlayerOneX[1]] == 'X' or game[wspPlayerOneX[0]][wspPlayerOneX[1]] == 'O':
            print('To pole jest już zajęte!')
            drawBoard(3)
            continue
        else:                                
            wpisz_X(wspPlayerOneX, game, listaSprawdzajaca)
        drawBoard(3)
        
        if whoWin(game) == True:                             <--------------- Tutaj program wchodzi do pętli if i funkcja whoWin umieszczona w petli tez dziala ale zmienna                                                                                              
            stopGame = False                                                                  stopGame chyba zmienia sie tylko lokalnie tak ze petla While dalej sie nie zatrzymuje
            whoWin(game)    ####
        print(stopGame)
        
        #-----------------------------------------------------------
        
        wspY = input('\nGracz 2\nPodaj współrzędne punktu: ')
        wspPlayerTwo0 = list(map(int, wspY.split(',')))
        if game[wspPlayerTwo0[0]][wspPlayerTwo0[1]] == 'X' or game[wspPlayerTwo0[0]][wspPlayerTwo0[1]] == 'O':
            print('To pole jest już zajęte!')
            drawBoard(3)
            continue
        else:
            wpisz_O(wspPlayerTwo0, game, listaSprawdzajaca)
        drawBoard(3)
        
        #stopGame = False
        
        if whoWin(game) == True:
            stopGame = False
            whoWin(game)    ####
        print(stopGame)
0

Pokaż to whoWin, debugowałeś?

0

Nie debugowalem bo aktualnie programuje w pythonie tylko w spyderze a tam nie do konca je ogarniam poki co.

    def whoWin(tablica):
        #Poziomo
        def checkHorizontally(tablica):
            for x, y, z in zip(tablica[0], tablica[1], tablica[2]):
                if(x == y and x == z):
                    if x == 'X':
                        print('\n\nGracz z X wygrał')
                        return True
                    elif x == 'O':
                        print('\n\nGracz z O wygrał')
                        return True
            #print('Nikt nie wygrał')
            return False
                    
        #Pionowo
        #def checkVertically(tablica)
         
        
        #Ukosnie
        #def checkDiagonally(tablica):
           
        checkHorizontally(tablica)
        #checkVertically(tablica)
        #checkDiagonally(tablica)
0

Zaimportuje pdb i pdb.set_trace() ustawia break point.

0

@Lil Keyboard:

a co w przypadku gdy korzystam z inputów? Bo nie do końca z nimi własnie potrafie sobe poradzic w kwesti debugowania

Na najnowszym Pythonie, (3.9) debugger normalnie współpracuje, przy czytaniu z klawiatury.

1 użytkowników online, w tym zalogowanych: 0, gości: 1