PORTAFOLIO DEL DESARROLLADOR ++

II PARCIAL
Para el segundo parcial, se realizó un informe de investigación sobre un lenguaje de programación de interés. Este fue Python.
Asimismo, se tendría que presentar un producto haciendo uso del lenguaje en cuestión. El docente al mencionar esto, hacía referencia a la creación de un un menú. En este caso, junto a Aragonés, quién es miembro de mi grupo para la presentación de este último trabajo, decidimos presentar un juego.
De esta forma, nuestro trabajo final de curso es la exposición conceptual del lenguaje de programación Python, la presentación de un informe de investigación sobre el mismo, y la explicación y demostración del funcionamiento de una estructura de código para la creación del juego Snake.
Martes 12/03/2024
PRESENTACIÓN DEL INFORME
INFORME DE INVESTIGACIÓN
PRODUCTO: ESTRUCTURA DE CÓDIGO DEL JUEGO SNAKE EN PYTHON
from operator import index
import turtle
import time
import random
posponer = 0.1
#Marcador
score = 0
high_score = 0
#Configuracion 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("white")
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(100,0)
#Cuerpo de la serpiente
segmentos = []
#Texto
texto = turtle.Turtle()
texto.speed(0)
texto.color("white")
texto.penup()
texto.hideturtle()
texto.goto(0,260)
texto.write("Score: 0 High Score: 0", align = "center", font = ("Courier", 24, "normal"))
#Funciones
def arriba():
cabeza.direction = "up"
def abajo():
cabeza.direction = "down"
def izquierda():
cabeza.direction = "left"
def derecha():
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
wn.listen()
wn.onkeypress(arriba, "Up")
wn.onkeypress(abajo, "Down")
wn.onkeypress(izquierda, "Left")
wn.onkeypress(derecha, "Right")
while True:
wn.update()
#Colisiones con los 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"
#Esconder segmentos de partidas pasadas
for segmento in segmentos:
segmento.goto(2000,2000)
#Limpiar lista de segmentos
segmentos.clear()
#Resetear marcador
score = 0
texto.write("Score: {} High Score: {}".format(score, high_score), align = "center", font = ("Courier", 24, "normal"))
#Colisiones con la comida
if cabeza.distance(comida) < 20:
#Mover la comida a posicion random
x = random.randint(-280,280)
y = random.randint(-280,280)
comida.goto(x,y)
nuevo_segmento = turtle.Turtle()
nuevo_segmento.speed(0)
nuevo_segmento.shape("square")
nuevo_segmento.color("gray")
nuevo_segmento.penup()
segmentos.append(nuevo_segmento)
#Aumentar marcador
score += 10
if score > high_score:
high_score = score
texto.clear()
texto.write("Score: {} High Score: {}".format(score, high_score), align = "center", font = ("Courier", 24, "normal"))
#Mover el cuerpo de la serpiente
totalSeg = len(segmentos)
for i in range(totalSeg -1, 0, 1):
x = segmentos[index - 1].xcor()
y = segmentos[index - 1].ycor()
segmentos[index].goto(x,y)
if totalSeg > 0:
x = cabeza.xcor()
y = cabeza.ycor()
segmentos[0].goto(x,y)
mov()
#Colisiones con el cuerpo de la serpiente
for segmento in segmentos:
if segmento.distance(cabeza) < 20:
time.sleep(1)
cabeza.goto(0,0)
cabeza.direction = "stop"
#Esconder segmentos de partidas pasadas
for segmento in segmentos:
segmento.goto(2000,2000)
#Limpiar lista de segmentos
segmentos.clear()
#Resetear marcador
score = 0
texto.write("Score: {} High Score: {}".format(score, high_score), align = "center", font = ("Courier", 24, "normal"))
time.sleep(posponer)

