馃З Cap铆tulo 9: Organizar el c贸digo (funciones)

Hasta ahora tu programa funciona… pero tiene un problema:

馃憠 empieza a ser dif铆cil de leer y mantener.

馃憠 Todo est谩 mezclado en un solo bloque.

馃 ¿Qu茅 es una funci贸n?

Una funci贸n es un bloque de c贸digo con un nombre.

馃憠 Sirve para agrupar instrucciones.

馃憠 As铆 puedes reutilizarlas cuando quieras.

1. Crear una funci贸n

As铆 se crea una funci贸n en Python:

def mover_adelante(): # define la funci贸n
  tobi.move(10) # acci贸n

¿Qu茅 significa?

  • def → define una funci贸n
  • mover_adelante → nombre de la funci贸n

2. Usar una funci贸n

Para ejecutarla:

mover_adelante()

馃憠 Llama a la funci贸n.

3. Aplicarlo al control

Vamos a organizar el c贸digo:

tobi = Sprite('Tobi')

def avanzar():
  tobi.move(5)

def retroceder():
  tobi.move(-5)

def girar_izquierda():
  tobi.turn(-5)

def girar_derecha():
  tobi.turn(5)

while True:

  if tobi.iskeypressed("w"):
    avanzar()

  elif tobi.iskeypressed("s"):
    retroceder()

  elif tobi.iskeypressed("a"):
    girar_izquierda()

  elif tobi.iskeypressed("d"):
    girar_derecha()

  tobi.delay(0.05)

馃憠 Ahora el c贸digo es mucho m谩s claro.

4. Funciones con l贸gica

Las funciones tambi茅n pueden incluir m谩s cosas:

def avanzar():
  tobi.move(5)
  tobi.say("Avanzo", 0.5)

馃憠 Una sola llamada ejecuta varias acciones.

5. Ventajas reales

  • C贸digo m谩s limpio
  • M谩s f谩cil de entender
  • M谩s f谩cil de modificar

馃憠 Esto es programar como un profesional.

⚠️ Error t铆pico

def avanzar():
tobi.move(5)

❌ Error

馃憠 Falta indentaci贸n

馃 C贸mo piensa Python

Python:

  • Guarda la funci贸n
  • Espera a que la llames
  • Ejecuta su contenido

馃憠 No se ejecuta hasta que la llamas.

馃殌 Reto Abutuber: C贸digo limpio

Organiza tu programa usando funciones:

  • Una funci贸n para avanzar
  • Una para retroceder
  • Una para girar

Extra: a帽ade mensajes dentro de las funciones

Ver soluci贸n
tobi = Sprite('Tobi') # personaje

def avanzar():
  tobi.move(5)
  tobi.say("Avanzo", 0.5)

def retroceder():
  tobi.move(-5)

def girar_izquierda():
  tobi.turn(-5)

def girar_derecha():
  tobi.turn(5)

while True:

  if tobi.iskeypressed("w"):
    avanzar()

  elif tobi.iskeypressed("s"):
    retroceder()

  elif tobi.iskeypressed("a"):
    girar_izquierda()

  elif tobi.iskeypressed("d"):
    girar_derecha()

  tobi.delay(0.05)

馃挕 Consejo Abutuber: Si tu c贸digo crece y no usas funciones… se vuelve imposible de manejar.