PROGRAMACIÓN DE Snake (PROGRAMACIÓN)
Hola gente bonita, en esta ocasión les mostraré el código de la versión 1.0 de "Snake".
Este proyecto es una simple adaptación del clásico Snake.
Programé el proyecto con el lenguaje de programación Python y el IDE VisualStudio Code. Las librerías que utilicé fueron:
- time
- turtle
- random
Luego de terminar de realizar la programación, empaqueté el archivo en formato .exe, esto con una librería llamada "py2exe".
Código de aplicación:
import time, turtle, random posponer = 0.1 score = 0 record = 0 #VENTANA ventana = turtle.Screen() ventana.title("Snake") ventana.bgcolor("black") ventana.setup(width=600, height=600) ventana.tracer(0) #CABEZA 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 SERPIENTE segmentos = [] #PUNTUACIÓN texto = turtle.Turtle() texto.speed(0) texto.color("White") texto.penup() texto.hideturtle() texto.goto(0,260) texto.write("Score: 0 Record: 0", align= "center", font= ("Courier", 24, "normal")) def puntuaciones(): texto.clear() texto.write("Score: {} Record: {}".format(score, record), align= "center", font= ("Courier", 24, "normal")) #PUNTUACIÓN texto_gameover = turtle.Turtle() texto_gameover.speed(0) texto_gameover.color("red") texto_gameover.penup() texto_gameover.hideturtle() texto_gameover.goto(0,0) def gameover(): texto_gameover.write("GAME OVER", align= "center", font= ("Courier", 50, "normal")) time.sleep(2) texto_gameover.clear() def esconder_segmentos(): for segmento in segmentos: segmento.goto(2000,2000) segmentos.clear() #ACCIONES DE MOVIMIENTO def up(): cabeza.direction = "up" def down(): cabeza.direction = "down" def left(): cabeza.direction = "left" def right(): cabeza.direction = "right" def mov(): if cabeza.direction == "up": y = cabeza.ycor() cabeza.sety(y + 20) if cabeza.direction == "down": y = cabeza.ycor() cabeza.sety(y - 20) if cabeza.direction == "left": x = cabeza.xcor() cabeza.setx(x - 20) if cabeza.direction == "right": x = cabeza.xcor() cabeza.setx(x + 20) #TECLADO ventana.listen() ventana.onkeypress(up, "Up") ventana.onkeypress(down, "Down") ventana.onkeypress(right, "Right") ventana.onkeypress(left, "Left") while True: ventana.update() #Colisiones con los extremos if cabeza.xcor() > 280 or cabeza.xcor() < -280 or cabeza.ycor() > 280 or cabeza.ycor() < -280 : cabeza.goto(0,0) cabeza.direction = "Stop" esconder_segmentos() score = 0 puntuaciones() gameover() #ACCIONES LUEGO DE COLISIONAR CON LA COMIDA if cabeza.distance(comida) < 20: x = random.randint(-14,14) y = random.randint(-14,14) comida.goto(x*20,y*20) #crea y agrega un nuevo segmento al cuerpo de la serpiente nuevo_segmento = turtle.Turtle() nuevo_segmento.speed(0) nuevo_segmento.shape("square") nuevo_segmento.color("green") nuevo_segmento.penup() segmentos.append(nuevo_segmento) score = score + 1 if score > record: record = score puntuaciones() # Mover el cuerpo de la serpiente total_Seg = len(segmentos) for index in range(total_Seg -1, 0, -1): x = segmentos[index - 1].xcor() y = segmentos[index - 1].ycor() segmentos[index].goto(x, y) if total_Seg > 0: x = cabeza.xcor() y = cabeza.ycor() segmentos[0].goto(x, y) mov() #colisiones con el cuerpo for segmento in segmentos: if segmento.distance(cabeza) < 20: cabeza.goto(0,0) cabeza.direction = "stop" esconder_segmentos() score = 0 puntuaciones() gameover() time.sleep(posponer)
Dankon por legu ĉi eniri. Ĝis la revido :3.

Comentarios
Publicar un comentario