Буквы на доске «Крестики-нолики Python Turtle» продолжают исчезатьPython

Программы на Python
Ответить
Anonymous
 Буквы на доске «Крестики-нолики Python Turtle» продолжают исчезать

Сообщение Anonymous »

Я сделал игру в крестики-нолики на Python, используя Python Turtle. Я сделал так, что при нажатии на квадрат на доске туда помещается буква, а затем компьютер размещает букву на доске. Однако когда игрок помещает букву на доску, а компьютер размещает букву на доске, через долю секунды буквы полностью исчезают с доски.
Вот код, в котором заключается проблема:

Код: Выделить всё

def printTurtleBoard():
pensize(10)
speed("fastest")
hideturtle()
screen.setup(500,500)
penup()
X = -150
Y = -50
goto(X,Y)
pendown()
for i in range(3):
for i in range(4):
forward(100)
right(90)
penup()
forward(100)
pendown()
for i in range(4):
forward(100)
right(90)
penup()
forward(100)
pendown()
for i in range(4):
forward(100)
right(90)
penup()
Y = Y + 100
goto(X,Y)
pendown()

Код: Выделить всё

        randomY = random.randint(0,2)
randomX = random.randint(0,2)
global letterO
def letterO():
if randomY == 0 and randomX == 0:
drawer.penup()
drawer.goto(-100,40)
drawer.pendown()
drawer.write("O", align="center",font=("Arial", 75))
if randomY == 0 and randomX == 1:
drawer.penup()
drawer.goto(0,40)
drawer.pendown()
drawer.write("O", align="center",font=("Arial", 75))
if randomY == 0 and randomX == 2:
drawer.penup()
drawer.goto(100,40)
drawer.pendown()
drawer.write("O", align="center",font=("Arial", 75))
if randomY == 1 and randomX == 0:
drawer.penup()
drawer.goto(-100,-60)
drawer.pendown()
drawer.write("O", align="center",font=("Arial", 75))
if randomY == 1 and randomX == 1:
drawer.penup()
drawer.goto(0,-60)
drawer.pendown()
drawer.write("O", align="center",font=("Arial", 75))
if randomY == 1 and randomX == 2:
drawer.penup()
drawer.goto(100,-60)
drawer.pendown()
drawer.write("O", align="center",font=("Arial", 75))
if randomY == 2 and randomX == 0:
drawer.penup()
drawer.goto(-100,-160)
drawer.pendown()
drawer.write("O", align="center",font=("Arial", 75))
if randomY == 2 and randomX == 1:
drawer.penup()
drawer.goto(0,-160)
drawer.pendown()
drawer.write("O", align="center",font=("Arial", 75))
if randomY == 2 and randomX == 2:
drawer.penup()
drawer.goto(100,-160)
drawer.pendown()
drawer.write("O", align="center",font=("Arial",  75))

Код: Выделить всё

    topleftsquare = Turtle()

topleftsquare.penup()
topleftsquare.shape("square")
topleftsquare.color("white")
topleftsquare.turtlesize(5)
topleftsquare.goto(-100,100)

topmiddlesquare = Turtle()

topmiddlesquare.penup()
topmiddlesquare.shape("square")
topmiddlesquare.color("white")
topmiddlesquare.turtlesize(5)
topmiddlesquare.goto(0,100)

toprightsquare = Turtle()

toprightsquare.penup()
toprightsquare.shape("square")
toprightsquare.color("white")
toprightsquare.turtlesize(5)
toprightsquare.goto(100,100)

middleleftsquare = Turtle()

middleleftsquare.penup()
middleleftsquare.shape("square")
middleleftsquare.color("white")
middleleftsquare.turtlesize(5)
middleleftsquare.goto(-100,0)

middlemiddlesquare = Turtle()

middlemiddlesquare.penup()
middlemiddlesquare.shape("square")
middlemiddlesquare.color("white")
middlemiddlesquare.turtlesize(5)
middlemiddlesquare.goto(0,0)

middlerightsquare = Turtle()

middlerightsquare.penup()
middlerightsquare.shape("square")
middlerightsquare.color("white")
middlerightsquare.turtlesize(5)
middlerightsquare.goto(100,0)

bottomleftsquare = Turtle()

bottomleftsquare.penup()
bottomleftsquare.shape("square")
bottomleftsquare.color("white")
bottomleftsquare.turtlesize(5)
bottomleftsquare.goto(-100,-100)

bottommiddlesquare = Turtle()

bottommiddlesquare.penup()
bottommiddlesquare.shape("square")
bottommiddlesquare.color("white")
bottommiddlesquare.turtlesize(5)
bottommiddlesquare.goto(0,-100)

bottomrightsquare = Turtle()

bottomrightsquare.penup()
bottomrightsquare.shape("square")
bottomrightsquare.color("white")
bottomrightsquare.turtlesize(5)
bottomrightsquare.goto(100,-100)

def top_left_square(x,y):
global place
global turn
topleftsquare.penup()
topleftsquare.pendown()
topleftsquare.color("white")
topleftsquare.penup()
drawer.speed("fastest")
drawer.hideturtle()
drawer.penup()
drawer.goto(-100,40)
drawer.pendown()
drawer.write("X", align="center",font=("Arial", 75))
place = 1
print(place)
row = (place - 1) // 3
column = (place - 1) % 3
board[row][column] = "X"
print("\n")
printBoard()
print("\n")
win = checkWin()
turn = "O"
print(turn)

def top_middle_square(x,y):
global place
global turn
topmiddlesquare.penup()
topmiddlesquare.pendown()
topmiddlesquare.color("white")
topmiddlesquare.penup()
drawer = Turtle()
drawer.speed("fastest")
drawer.hideturtle()
drawer.penup()
drawer.goto(0,40)
drawer.pendown()
drawer.write("X", align="center",font=("Arial", 75))
place = 2
print(place)
row = (place - 1) // 3
column = (place - 1) % 3
board[row][column] = "X"
print("\n")
printBoard()
print("\n")
win = checkWin()
turn = "O"

def top_right_square(x,y):
global place
global turn
toprightsquare.penup()
toprightsquare.pendown()
toprightsquare.penup()
drawer = Turtle()
drawer.speed("fastest")
drawer.hideturtle()
drawer.penup()
drawer.goto(100,40)
drawer.pendown()
drawer.write("X", align="center",font=("Arial",  75))
place = 3
print(place)
row = (place - 1) // 3
column = (place - 1) % 3
board[row][column] = "X"
print("\n")
printBoard()
print("\n")
win = checkWin()
turn = "O"

def middle_left_square(x,y):
global place
global turn
middleleftsquare.penup()
middleleftsquare.pendown()
middleleftsquare.penup()
drawer = Turtle()
drawer.speed("fastest")
drawer.hideturtle()
drawer.penup()
drawer.goto(-100,-60)
drawer.pendown()
drawer.write("X", align="center",font=("Arial", 75))
place = 4
row = (place - 1) // 3
column = (place - 1) % 3
board[row][column] = "X"
print("\n")
printBoard()
print("\n")
win = checkWin()
turn = "O"

def middle_middle_square(x,y):
global place
global turn
middlemiddlesquare.penup()
middlemiddlesquare.pendown()
middlemiddlesquare.penup()
drawer = Turtle()
drawer.speed("fastest")
drawer.hideturtle()
drawer.penup()
drawer.goto(0,-60)
drawer.pendown()
drawer.write("X", align="center",font=("Arial", 75))
place = 5
row = (place - 1) // 3
column = (place - 1) % 3
board[row][column] = "X"
print("\n")
printBoard()
print("\n")
win = checkWin()
turn = "O"

def middle_right_square(x,y):
global place
global turn
middlerightsquare.penup()
middlerightsquare.pendown()
middlerightsquare.penup()
drawer = Turtle()
drawer.speed("fastest")
drawer.hideturtle()
drawer.penup()
drawer.goto(100,-60)
drawer.pendown()
drawer.write("X", align="center",font=("Arial", 75))
place = 6
row = (place - 1) // 3
column = (place - 1) % 3
board[row][column] = "X"
print("\n")
printBoard()
print("\n")
win = checkWin()
turn = "O"

def bottom_left_square(x,y):
global place
global turn
bottomleftsquare.penup()
bottomleftsquare.pendown()
bottomleftsquare.penup()
drawer = Turtle()
drawer.speed("fastest")
drawer.hideturtle()
drawer.penup()
drawer.goto(-100,-160)
drawer.pendown()
drawer.write("X", align="center",font=("Arial", 75))
place = 7
row = (place - 1) // 3
column = (place - 1) % 3
board[row][column] = "X"
print("\n")
printBoard()
print("\n")
win = checkWin()
turn = "O"

def bottom_middle_square(x,y):
global place
global turn
bottommiddlesquare.penup()
bottommiddlesquare.pendown()
bottommiddlesquare.penup()
drawer = Turtle()
drawer.speed("fastest")
drawer.hideturtle()
drawer.penup()
drawer.goto(0,-160)
drawer.pendown()
drawer.write("X", align="center",font=("Arial", 75))
place = 8
row = (place - 1) // 3
column = (place - 1) % 3
board[row][column] = "X"
print("\n")
printBoard()
print("\n")
win = checkWin()
turn = "O"

def bottom_right_square(x,y):
global place
global turn
bottomrightsquare.penup()
bottomrightsquare.pendown()
bottomrightsquare.penup()
drawer = Turtle()
drawer.speed("fastest")
drawer.hideturtle()
drawer.penup()
drawer.goto(100,-160)
drawer.pendown()
drawer.write("X", align="center",font=("Arial",  75))
place = 9
row = (place - 1) // 3
column = (place - 1) % 3
board[row][column] = "X"
print("\n")
printBoard()
print("\n")
win = checkWin()
turn = "O"

while playAgain == "y" and multiplayer == 1:
try:
global place
global turn
print("\n")
printTurtleBoard()
turn = "X"
print(turn)
while turn == "X":
topleftsquare.onclick(top_left_square)
topmiddlesquare.onclick(top_middle_square)
toprightsquare.onclick(top_right_square)
middleleftsquare.onclick(middle_left_square)
middlemiddlesquare.onclick(middle_middle_square)
middlerightsquare.onclick(middle_right_square)
bottomleftsquare.onclick(bottom_left_square)
bottommiddlesquare.onclick(bottom_middle_square)
bottomrightsquare.onclick(bottom_right_square)
win = checkWin()
if win == 1 or win == 2 or win == 3:
play_again()

if turn == "O":
counter += 1
print("Turns counted: ", counter)
print("\n")
printBoard()
print("\n")
computer()
win = checkWin()
if win == 1 or win == 2 or win == 3:
play_again()
#runs the play_again() function
global letterO
letterO()
printBoard()
Извините, это очень длинно, но я не знал другого способа получить помощь по вопросу, не публикуя весь этот код.
Я попробовал дать черепахе имя в функции printTurtleBoard(), чтобы посмотреть, решит ли это что-нибудь, но та же проблема осталась

Подробнее здесь: https://stackoverflow.com/questions/715 ... sappearing
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»