Как я могу исправить ошибку отступа в моем коде? - PullRequest
1 голос
/ 25 апреля 2019

Я сделал игру Tic / Tac / Toe, и я получаю ошибку отступа о том, что слишком много смешиваний табуляции и пробелов, но я пытался переопределить отступ за строкой, и это не сработало.Я даже поместил его в «Sublime Text», который автоматически переопределяет отступы или превращает пробелы во вкладки.Это все еще не работало.У кого-нибудь есть какие-либо предложения, может быть, есть какая-то очевидная ошибка, которую я пропускаю, которая все испортила?

1 Ответ

2 голосов
/ 25 апреля 2019

В вашем коде были ошибки с отступами, но я не заметил проблем со смешанными табуляциями и пробелами.Вместо этого глубина отступа была непоследовательной и, в некоторых местах, неправильной.Ниже приведен пример очистки вашего кода, который вы сможете скопировать и вставить в файл и запустить:

from turtle import *

# draw board
pieces = ["", "", "", "", "", "", "", "", ""]
turn = "X"

setup(600, 600)
bgcolor("black")

pencolor("white")
hideturtle()
speed('fastest')
pensize(10)
penup()

# Horizontal bars
goto(-300, 100)
pendown()
forward(600)
penup()
goto(-300, -100)
pendown()
forward(600)
penup()

# Vertical bars
goto(-100, 300)
setheading(-90)
pendown()
forward(600)
penup()
goto(100, 300)
pendown()
forward(600)
penup()

pencolor("green")

# Draw noughts and crosses
def cross(x, y):
    penup()
    goto(x + 20, y - 20)
    setheading(-45)
    pendown()
    forward(226)
    penup()
    goto(x + 180, y - 20)
    setheading(-135)
    pendown()
    forward(226)
    penup()

def nought(x, y):
    penup()
    goto(x + 100, y - 180)
    setheading(0)
    pendown()
    circle(80)
    penup()

def drawPieces(pieces):
    x, y = -300, 300

    for piece in pieces:
        if piece == "X":
            cross(x, y)
        elif piece == "O":
            nought(x, y)

        x += 200
        if x > 100:
            x = -300
            y -= 200

def clicked(x, y):
    global turn, pieces

    onscreenclick(None)  # disable handler when inside handler!

    column = (x + 300) // 200
    row = (y - 300) // -200
    square = int(row * 3 + column)

    print("You clicked ", x, ",", y, " which is square ", square)

    if pieces[square] == "":
        pieces[square] = turn

        if turn == "X":
            turn = "O"
        else:
            turn = "X"

        drawPieces(pieces)
    else:
        print("That square is already taken")

    onscreenclick(clicked)

# Start the game
onscreenclick(clicked)

mainloop()

enter image description here

...