Al Snake 🐍
1
0import turtle
import time
import random
posponer = 0.1
# Configuración de la ventana
wn = turtle.Screen()
wn.title("Juego de Snake ?")
wn.bgcolor("black")
wn.setup(width=600, height=600)
wn.tracer(0)
# Cabeza de la serpiente
cabeza = turtle.Turtle()
cabeza.speed(0)
cabeza.shape("square")
cabeza.color("green")
cabeza.penup()
cabeza.goto(0,0)
cabeza.direction = "stop"
# Comida
comida = turtle.Turtle()
comida.speed(0)
comida.shape("circle")
comida.color("red")
comida.penup()
comida.goto(0,100)
# Cuerpo de la serpiente
segmentos = []
# Funciones de movimiento
def arriba(): cabeza.direction = "up"
def abajo(): cabeza.direction = "down"
def izquierda(): cabeza.direction = "left"
def derecha(): cabeza.direction = "right"
def mover():
if cabeza.direction == "up": cabeza.sety(cabeza.ycor() + 20)
if cabeza.direction == "down": cabeza.sety(cabeza.ycor() - 20)
if cabeza.direction == "left": cabeza.setx(cabeza.xcor() - 20)
if cabeza.direction == "right": cabeza.setx(cabeza.xcor() + 20)
# Teclado
wn.listen()
wn.onkeypress(arriba, "Up")
wn.onkeypress(abajo, "Down")
wn.onkeypress(izquierda, "Left")
wn.onkeypress(derecha, "Right")
while True:
wn.update()
# Colisión bordes
if cabeza.xcor()>280 or cabeza.xcor()<-280 or cabeza.ycor()>280 or cabeza.ycor()<-280:
time.sleep(1)
cabeza.goto(0,0)
cabeza.direction = "stop"
for s in segmentos: s.goto(1000,1000)
segmentos.clear()
# Colisión comida
if cabeza.distance(comida) < 20:
x = random.randint(-280, 280)
y = random.randint(-280, 280)
comida.goto(x,y)
nuevo_segmento = turtle.Turtle()
nuevo_segmento.shape("square")
nuevo_segmento.color("lightgreen")
nuevo_segmento.penup()
segmentos.append(nuevo_segmento)
# Mover cuerpo
for i in range(len(segmentos)-1, 0, -1):
x = segmentos[i-1].xcor()
y = segmentos[i-1].ycor()
segmentos[i].goto(x,y)
if len(segmentos) > 0
Follow