HAS TU PROPIO SEMAFORO

Este programa crea una imagen con cuatro calles,las cuales estan reguladas por 4 semaforos los cuales permiten el paso de las tortugas, lo bonito de esta entrada es que si se conectan los LEDS en las entradas correspondientes de la raspberry, pueden prender cincronisados con los semaforos







from turtle import *
from gpiozero import LED
import time
a=Turtle()
b=Turtle()
car1=Turtle()
car2=Turtle()
car3=Turtle()
car4=Turtle()
car5=Turtle()
car6=Turtle()
car7=Turtle()
car8=Turtle()
car9=Turtle()
car10=Turtle()
screen=a.getscreen()
setup(450,200,0,0)
screensize(1000,1000)
title("NASCAR")
LEDR1=LED(26)
LEDA1=LED(19)
LEDV1=LED(13)
LEDR2=LED(6)
LEDA2=LED(5)
LEDV2=LED(21)
LEDR3=LED(20)
LEDA3=LED(16)
LEDV3=LED(12)
LEDR4=LED(4)
LEDA4=LED(17)
LEDV4=LED(27)
a.speed(100)
a.hideturtle()
b.speed(100)
b.hideturtle()

##Coordenadas de lo carritos prrones
#CAR1
car1.speed(100)
car1.hideturtle()
car1.penup()
car1.speed(1)
car1.goto(-140,-50)
car1.color("honeydew3")
car1.shape("turtle")
car1.speed(1)
#CAR2
car2.hideturtle()
car2.penup()
car2.speed(100)
car2.goto(-50,400)
car2.rt(90)
car2.color("blue3")
car2.shape("turtle")
car2.speed(1)
#CAR3
car3.hideturtle()
car3.penup()
car3.speed(100)
car3.goto(600,50)
car3.rt(180)
car3.color("orange")
car3.shape("turtle")
car3.speed(3.5)
#CAR4
car4.hideturtle()
car4.penup()
car4.speed(100)
car4.goto(600,50)
car4.rt(180)
car4.color("red")
car4.shape("turtle")
car4.speed(1)
#CAR5
car5.hideturtle()
car5.penup()
car5.speed(100)
car5.goto(50,-500)
car5.lt(90)
car5.color("alice blue")
car5.shape("turtle")
car5.speed(2)
#CAR6
car6.hideturtle()
car6.color("dark salmon")
car6.speed(100)
car6.shape("turtle")
car6.penup()
car6.goto(-50,500)
car6.speed(1)
#CAR7
car7.speed(100)
car7.hideturtle()
car7.penup()
car7.shape("turtle")
car7.color("aquamarine2")
car7.goto(-600,-50)
car7.speed(3)
#CAR8
car8.speed(100)
car8.hideturtle()
car8.penup()
car8.shape("turtle")
car8.color("bisque2")
car8.goto(-500,-50)
car8.speed(2)
#CAR9
car9.hideturtle()
car9.penup()
car9.speed(100)
car9.shape("turtle")
car9.goto(50,-500)
car9.color("chartreuse")
car9.speed(1)
#CAR10
car10.hideturtle()
car10.penup()
car10.speed(100)
car10.shape("turtle")
car10.goto(-700,-50)
car10.color("white")
car10.showturtle()
car10.speed(3)

##PASTO
a.penup()
b.penup()
a.goto(-500,0)
a.pensize(800)
a.color("GreenYellow")
a.pendown()
a.fd(1000)

##CALLES
a.color("gray")
b.color("gray")
a.pensize(200)
b.pensize(200)
a.penup()
a.goto(-700,0)
a.pendown()
a.fd(1400)
b.penup()
b.goto(0,-300)
b.lt(90)
b.pendown()
b.fd(600)
b.rt(90)

##BANQUETAS
a.penup()
b.penup()
a.color("grey90")
b.color("grey90")
a.pensize(5)
b.pensize(5)

#Horizontal superior
a.penup()
a.goto(-100,100)
a.rt(180)
a.pendown()
b.penup()
b.goto(100,100)
b.pendown()
a.fd(700)
b.fd(700)
a.penup()
b.penup()

#Vertical superior
a.goto(-100,100)
a.rt(90)
b.goto(100,100)
b.lt(90)
a.pendown()
b.pendown()
a.fd(250)
a.penup()
b.fd(250)
b.penup()

#Vertical inferior
a.goto(-100,-100)
a.rt(180)
b.goto(100,-100)
b.rt(180)
a.pendown()
a.fd(250)
a.penup()
b.pendown()
b.fd(250)
b.penup()

#Horizontal inferior
a.goto(-100,-100)
a.rt(90)
a.pendown()
b.goto(100,-100)
b.lt(90)
b.pendown()
a.fd(700)
a.penup()
b.fd(700)
b.penup()

a.color("gray")
b.color("gray")


##DIVISORES DE CARRIL
a.goto(-100,0)
b.goto(100,0)

#Horizontales
for i in range (15):
a.color("Yellow")
a.pensize(4)
a.penup()
a.fd(20)
a.pendown()
a.fd(20)

for i in range (15):
b.color("Yellow")
b.pensize(4)
b.penup()
b.fd(20)
b.pendown()
b.fd(20)

#Verticales
a.penup()
a.goto(0,100)
a.rt(90)
b.penup()
b.goto(0,-100)
b.rt(90)

for i in range (10):
a.color("Yellow")
a.pensize(4)
a.penup()
a.fd(20)
a.pendown()
a.fd(20)


for i in range (10):
b.color("Yellow")
b.pensize(4)
b.penup()
b.fd(20)
b.pendown()
b.fd(20)

##SEMAFOROS
a.penup()
b.penup()
a.pensize(3)
b.pensize(3)

#semaforo 1
a.color("black")
a.goto(-100,100)
a.rt(90)
a.pendown()
a.fd(50)
a.lt(90)
a.color("dark red")
LEDR1.off()
a.circle(9,180)
a.rt(180)
a.color("Yellow4")
LEDA1.off()
a.circle(9,180)
a.rt(180)
a.color("dark green")
LEDV1.off()
a.circle(9,180)
a.penup()


#Semaforo 2
b.goto(100,100)
b.pendown()
b.color("black")
b.fd(50)
b.lt(90)
b.color("dark red")
LEDR2.off()
b.circle(9,180)
b.rt(180)
b.color("yellow4")
LEDA2.off()
b.circle(9,180)
b.rt(180)
b.color("dark green")
LEDV2.off()
b.circle(9,180)
b.penup()


#Semaforo 3
a.goto(-100,-100)
a.rt(180)
a.color("black")
a.pendown()
a.fd(50)
a.lt(90)
a.color("dark red")
LEDR3.off()
a.circle(9,180)
a.rt(180)
a.color("yellow4")
LEDA3.off()
a.circle(9,180)
a.rt(180)
a.color("dark green")
LEDV3.off()
a.circle(9,180)
a.penup()

#Semaforo 4
b.color("black")
b.goto(100,-100)
b.pendown()
b.fd(50)
b.lt(90)
b.color("dark red")
LEDR4.off()
b.circle(9,180)
b.rt(180)
b.color("yellow4")
LEDA4.off()
b.circle(9,180)
b.rt(180)
b.color("dark green")
LEDV4.off()
b.circle(9,180)
b.penup()

#Carrito 1
car1.showturtle()
car1.penup()

#Semaforo 1
a.goto(0,0)
b.goto(0,0)
b.rt(90)

a.speed(10)
a.goto(-104,100)
a.color("green1")
LEDV1.on()
a.pendown()
a.rt(90)
a.circle(9,-180)

#Semaforo 2
b.color("red1")
LEDR2.on()
b.goto(-100,-50)
b.pendown()
b.rt(180)
b.circle(9,180)
b.penup()

#Semaforo 3
LEDR3.on()
b.goto(50,-100)
b.rt(90)
b.pendown()
b.circle(9,180)
b.penup()

#Semaforo 4
LEDR4.on()
b.goto(100,50)
b.rt(90)
b.pendown()
b.circle(9,180)
b.penup()

#Carrito 2
car2.showturtle()
car2.penup()
car2.fd(900)

#Carrito 3
car3.showturtle()
car3.penup()
car3.fd(440)

#Semaforo 2
for i in range(5):
a.speed(10)
a.pendown()
a.color("green1")
LEDV1.on()
a.circle(9,180)
a.color("dark green")
LEDV1.off()
a.circle(9,-180)

LEDV1.off()
a.penup()
a.rt(180)
a.color("yellow1")
LEDA1.on()
a.pendown()
a.circle(9,-180)
a.circle(9,180)
LEDA2.off()
#Carrito 4
car4.showturtle()
car4.penup()
car4.fd(400)

#Semaforo 2
a.color("yellow4")
LEDA2.off()
a.circle(9,-180)
a.rt(180)
a.color("red1")
LEDR2.on()
a.circle(9,-180)


#Semaforo2
b.goto(-100,-50)
b.color("dark red")
LEDR2.off()
b.pendown()
b.circle(9,180)
b.penup()
b.goto(-100,-104)
b.rt(180)
b.color("green1")
LEDV2.on
b.pendown()
b.rt(180)
b.circle(9,-180)

#Carritos 1 y 10
x=5
for i in range (200):
car1.speed()
car1.fd(5)
car10.speed(x)
car10.fd(x+3)



#Carrito 5
car5.showturtle()
car5.penup()
car5.fd(350)

#Semaforo 2
for i in range(4):
b.speed(10)
b.color("green1")
LEDV2.on()
b.circle(9,180)
b.color("dark green")
LEDV2.off
b.circle(9,-180)

b.speed(10)
b.color("Yellow1")
LEDA2.on()
b.rt(180)
b.circle(9,-180)
b.circle(9,180)

#Carrito 7
car7.showturtle()
car7.fd(1500)


#Semaforo 2
b.color("yellow4")
LEDA2.off()
b.circle(9,-180)
b.color("red1")
LEDR2.on()
b.rt(180)
b.circle(9,-180)

#Semaforo 3
a.speed(100)
a.penup()
a.goto(50,-100)
a.rt(180)
a.color("dark red")
LEDR3.off()
a.pendown()
a.speed(10)
a.circle(9,180)
a.penup()
a.goto(104,-100)
a.lt(90)
a.color("green1")
LEDV3.on()
a.pendown()
a.rt(90)
a.circle(9,-180)

#Carrito 5
car5.speed(2)
car5.fd(800)

#Carrito 6
car6.showturtle()
car6.rt(90)
car6.fd(350)
time.sleep(1)

#Semaforo 3
for i in range (4):
a.color("green1")
LEDV3.on()
a.circle(9,180)
a.color("dark green")
LEDV3.off
a.circle(9,-180)

a.rt(180)
a.color("Yellow1")
LEDA3.on()
a.circle(9,-180)
a.circle(9,180)
time.sleep(1)

#Carrito 8
car8.showturtle()
car8.fd(330)

#Semaforo 3
a.color("yellow4")
LEDA3.off()
a.circle(9,-180)
a.color("red1")
LEDR3.on()
a.rt(180)
a.circle(9,-180)

#Semaforo 4
b.penup()
b.goto(100,50)
b.color("dark red")
LEDR4.off()
b.pendown()
b.rt(180)
b.circle(9,180)
b.penup()
b.goto(100,104)
b.pendown()
b.color("green1")
LEDV4.on()
b.circle(9,-180)

#Carritos 3 y 4
x=5
y=5
for i in range (70):
car4.speed(3)
car3.speed(3)
car3.fd(x)
car4.fd(y)
x=x+1
y=y+(.5)

#Semaforo 4
for i in range (4):
b.color("green1")
LEDV4.on()
b.circle(9,180)
b.color("dark green")
LEDV4.off()
b.circle(9,-180)

b.color("yellow1")
LEDA4.on()
b.rt(180)
b.circle(9,-180)
b.circle(9,180)

#Carrito 9
car9.showturtle()
car9.lt(90)
car9.fd(350)

#Semaforo 4
b.color("yellow4")
LEDA4.off()
b.circle(9,-180)
b.color("red1")
LEDR4.on
b.rt(180)
b.circle(9,-180)


a.penup()
a.goto(0,0)
a.color("Blue1")
a.write("GAME OVER", True, "center" ,("Times new roman", 32, "bold"))




screen.exitonclick()

Comentarios

Entradas más populares de este blog

AREAS Y VOLUMENES DE FIGURAS EN PYTHON

Programas Unidad 3