sim8x8

from turtle import *
tracer(40, 2)
class LED():
    def __init__(self, x, y, r=15):
        self.r = r
        self.neg = 0
        self.pos = 0
        self.t = Turtle()        
        self.t.pu()
        self.t.goto(x, y)
        self.t.speed(0)
        self.t.ht()        
        self.setNeg(self.neg)
        self.display()

    def setNeg(self, value):
        self.neg = value
        self.display()
    
    def display(self):
        if self.neg == 1:
            self.t.color((0.4, 0.4, 0.4), (1, 0, 0))
        else:
            self.t.color((0.4, 0.4, 0.4), 'white')
        self.t.begin_fill()
        self.t.pd()
        self.t.circle(self.r)
        self.t.pu()
        self.t.end_fill()
    


offx = -200
offy = 200

leds = []
gap = 50

color((0.4, 0.4, 0.4))
pu()
goto(offx - gap/2, offy + 3*gap/4)
pd()
begin_fill()
for i in range(4):
    fd(8 * gap)
    rt(90)
end_fill()

##for row in range(8):
##    led_row = []
##    for col in range(8):
##        led = LED(offx + gap * col, offy - gap * row)
##        # led.display()
##        led_row.append(LED(offx + 20 * col, offy - 20 * row))
##    leds.append(led_row)

for j  in range(8):
    row = []
    for i in range(8):
        led = LED(offx + gap * i, offy - gap * j)
        row.append(led)
    leds.append(row)

from time import sleep

heart =[
    [0, 0, 0, 0, 0, 0, 0, 0],
    [0, 1, 1, 0, 0, 1, 1, 0],
    [1, 1, 1, 1, 1, 1, 1, 1],
    [1, 1, 1, 1, 1, 1, 1, 1],
    [0, 1, 1, 1, 1, 1, 1, 0],
    [0, 0, 1, 1, 1, 1, 0, 0],
    [0, 0, 0, 1, 1, 0, 0, 0],
    [0, 0, 0, 0, 0, 0, 0, 0],
    
    ]

heart_sm =[
    [0, 0, 0, 0, 0, 0, 0, 0],
    [0, 0, 0, 0, 0, 0, 0, 0],
    [0, 1, 1, 0, 0, 1, 1, 0],
    [1, 1, 1, 1, 1, 1, 1, 1],
    [1, 1, 1, 1, 1, 1, 1, 1],
    [0, 1, 1, 1, 1, 1, 1, 0],
    [0, 0, 1, 1, 1, 1, 0, 0],
    [0, 0, 0, 1, 1, 0, 0, 0],
    
    ]


while True:
    for row in range(8):
        for col in range(8):
            leds[row][col].setNeg(heart[row][col])
            leds[row][col].display()
    for row in range(8):
        for col in range(8):
            leds[row][col].setNeg(heart_sm[row][col])
            leds[row][col].display()


    

你可能感兴趣的:(sim8x8)