В программе, которую я пытаюсь создать, я использую Turtle для создания 12-часового цифрового будильника, где каждое число (чч: мм) меняется так, как если бы часы проходили через 24-часовой день.Однако некоторые переменные, которые я использую для установки числа для минут и часовой стрелки, не меняются в значении, даже если я настроил их для добавления их при соблюдении определенных условий.
Итак, я установил черепах, чтобы нарисовать стол, а корпус и циферблат часов на этом столе.Но что еще более важно, я сделал 6 черепах, одну для точек между номерами часов и минут, одну для AM / PM и одну для каждого из чисел.Все они нарисованы отдельными функциями для каждой из черепах, которые я описал выше.У меня есть отдельный документ .txt, строки которого состоят из 5 битов, соответствующих точкам, где каждая цифра должна была измениться.С помощью функции AM / PM и функции десятичного числа часов я установил базовый оператор if и else, где, если бы бит, соответствующий этой конкретной функции, получился как 0, то место десятки должно было бы выйти как 0,или если бит получен как 1, он получится как 1. Однако для остальных чисел, если бит вышел как 0, соответствующая функция будет повторять последний сделанный рисунок, который будет сохранен в своем собственномфункция.Если бит получен как 1, он будет сохранен в переменной, которая затем будет использоваться в операции модуля с другой переменной, которая выдаст число, соответствующее следующему номеру цикла или вращения.Например, для своей минутной стрелки числа, которые могут появиться, равны 0, 1, 2, 3, 4, 5, 6, 7, 8 и 9. Если операция модуля получается 3, то число будетбыть 3. Кроме того, 3 будет сохранен в переменной, так что, когда бит выйдет как 0, функция может показывать число раньше.Кроме того, если операция модуля получилась как 0, то вторая переменная, которую я описал в функции модуля, будет добавляться с определенным числом каждый раз.В случае с минутной стрелкой это число равно 10. Вот и все.Мой код ниже:
#Program Setup
import turtle
import time
num = turtle.Turtle()
num2 = turtle.Turtle()
num3 = turtle.Turtle()
num4 = turtle.Turtle()
text = turtle.Turtle()
binlist = []
com = 12
com1 = 6
com2 = 10
bits = 0
bits1 = 0
bits2 = 0
#Function Setup
def hour1(bit1,g):
if int(bit1) == 0:
num.clear()
g = num.write("0",False,"center",("alarm clock",100,"normal"))
else:
num.clear()
g = num.write("1",False,"center",("alarm clock",100,"normal"))
def hour2(bit2,g1,bits,com):
if int(bit2) == 0:
num2.clear()
g1
else:
bits +=1
return bits
if int(bits) % int(com) == 1:
num2.clear()
g1 = num2.write("1",False,"center",("alarm clock",100,"normal"))
elif int(bits) % int(com) == 2:
num2.clear()
g1 = num2.write("2",False,"center",("alarm clock",100,"normal"))
elif int(bits) % int(com) == 3:
num2.clear()
g1 = num2.write("3",False,"center",("alarm clock",100,"normal"))
elif int(bits) % int(com) == 4:
num2.clear()
g1 = num2.write("4",False,"center",("alarm clock",100,"normal"))
elif int(bits) % int(com) == 5:
num2.clear()
g1 = num2.write("5",False,"center",("alarm clock",100,"normal"))
elif int(bits) % int(com) == 6:
num2.clear()
g1 = num2.write("6",False,"center",("alarm clock",100,"normal"))
elif int(bits) % int(com) == 7:
num2.clear()
g1 = num2.write("7",False,"center",("alarm clock",100,"normal"))
elif int(bits) % int(com) == 8:
num2.clear()
g1 = num2.write("8",False,"center",("alarm clock",100,"normal"))
elif int(bits) % int(com) == 9:
num2.clear()
g1 = num2.write("9",False,"center",("alarm clock",100,"normal"))
elif int(bits) % int(com) == 10:
num2.clear()
g1 = num2.write("0",False,"center",("alarm clock",100,"normal"))
elif int(bits) % int(com) == 11:
num2.clear()
g1 = num2.write("1",False,"center",("alarm clock",100,"normal"))
else:
num2.clear()
g1 = num2.write("2",False,"center",("alarm clock",100,"normal"))
com += 12
return com
def min1(bit3,g2,bits1,com1):
if int(bit3) == 0:
num3.clear()
g2
else:
bits1 += 1
return bits1
if int(bits1) % int(com1) == 1:
num3.clear()
g2 = num3.write("1",False,"center",("alarm clock",100,"normal"))
elif int(bits1) % int(com1) == 2:
num3.clear()
g2 = num3.write("2",False,"center",("alarm clock",100,"normal"))
elif int(bits1) % int(com1) == 3:
num3.clear()
g2 = num3.write("3",False,"center",("alarm clock",100,"normal"))
elif int(bits1) % int(com1) == 4:
num3.clear()
g2 = num3.write("4",False,"center",("alarm clock",100,"normal"))
elif int(bits1) % int(com1) == 5:
num3.clear()
g2 = num3.write("5",False,"center",("alarm clock",100,"normal"))
else:
num3.clear()
g2 = num3.write("0",False,"center",("alarm clock",100,"normal"))
com1 += 6
return com1
def min2(bit4,g3,bits2,com2):
if int(bit4) == 0:
g3
else:
bits2 += 1
return bits2
if int(bits2) % int(com2) == 1:
num4.clear()
g3 = num4.write("1",False,"center",("alarm clock",100,"normal"))
elif int(bits2) % int(com2) == 2:
num4.clear()
g3 = num4.write("2",False,"center",("alarm clock",100,"normal"))
elif int(bits2) % int(com2) == 3:
num4.clear()
g3 = num4.write("3",False,"center",("alarm clock",100,"normal"))
elif int(bits2) % int(com2) == 4:
num4.clear()
g3 = num4.write("4",False,"center",("alarm clock",100,"normal"))
elif int(bits2) % int(com2) == 5:
num4.clear()
g3 = num4.write("5",False,"center",("alarm clock",100,"normal"))
elif int(bits2) % int(com2) == 6:
num4.clear()
g3 = num4.write("6",False,"center",("alarm clock",100,"normal"))
elif int(bits2) % int(com2) == 7:
num4.clear()
g3 = num4.write("7",False,"center",("alarm clock",100,"normal"))
elif int(bits2) % int(com2) == 8:
num4.clear()
g3 = num4.write("8",False,"center",("alarm clock",100,"normal"))
elif int(bits2) % int(com2) == 9:
num4.clear()
g3 = num4.write("9",False,"center",("alarm clock",100,"normal"))
else:
num4.clear()
g3 = num4.write("0",False,"center",("alarm clock",100,"normal"))
com2 += 10
return com2
def meridiem(bit5,g4):
if int(bit5) == 0:
text.clear()
g4 = text.write("AM",False,"center",("alarm clock",25,"normal"))
else:
text.clear()
g4 = text.write("AM",False,"center",("alarm clock",25,"normal"))
f = open("ikeokereke.txt","r")
for line in f:
binlist.append(line.rstrip('\n'))
for e in binlist:
bit1 = e[0:1]
bit2 = e[1:2]
bit3 = e[2:3]
bit4 = e[3:4]
bit5 = e[4:5]
time.sleep(.5)
hour1(bit1,g)
hour2(bit2,g1,bits,com)
min1(bit3,g2,bits1,com1)
min2(bit4,g3,bits2,com2)
meridiem(bit5,g4)
print(bits)
print(bits1)
print(bits2)
print(com)
print(com1)
print(com2)
Ожидаемый результат: Нормальный, работающий цифровой будильник. Фактический результат: часовая стрелка десятки, обозначенная как 0, и минутная стрелка первой, обозначенная как 0, а другаядва числа даже не появляются.
ikeokereke.txt
https://docs.google.com/document/d/e/2PACX-1vT6O_NqKrKR0tC8IPvoItwmJL0uCgbUJsBK0xH62IHAfx_nJxD62DuKjc8Ih93YyMKsNGn0EP6Nxu6Q/pub