• Navega al azar. Pulsa las flechas y deja que la fortuna te dispense un artículo.

    SOLUCIONES A LOS RETOS LABY

    Aquí van las soluciones a los retos del programa Laby que se describe en: Cómo enseñar a programar a niños y niñas de 8 años.

    Hemos utilizado el lenguaje Python. En este lenguaje de programación la indentación del código es muy importante. En C es casi igual solo que las órdenes se agrupan mediante los signos { y }

    Te aconsejamos mucho que lo intentes primero por tus propios medios. Pero si te atascas aquí van los códigos de los 10 problemas básicos.


    1a
    from robot import *;
    derecha()
    avanzar()
    avanzar()
    avanzar()
    izquierda()
    avanzar()
    avanzar()
    escapar()

    1b
    from robot import *;
    derecha()
    avanzar()
    izquierda()
    avanzar()
    derecha()
    tomar()
    derecha()
    derecha()
    dejar()
    derecha()
    derecha()
    avanzar()
    avanzar()
    avanzar()
    izquierda()
    avanzar()
    derecha()
    escapar()

    1c
    from robot import *;
    avanzar()
    avanzar()
    tomar()
    derecha()
    derecha()
    dejar()
    derecha()
    derecha()
    avanzar()
    avanzar()
    avanzar()
    escapar()

    2a
    from robot import *;
    while mirar() == Void:
       avanzar()
    escapar()

    2b
    from robot import *;
    while mirar() == Void:
     avanzar()
     tomar()
     izquierda()
     izquierda()
     dejar()
     izquierda()
     izquierda()
    escapar()
    En este último la hormiga hace una especie de baile final porque el código no es perfecto. Pero queda bonito.

    2c
    from robot import *;
    def f():
        while mirar() == Void:
              avanzar()
    f()
    izquierda()
    f()
    izquierda()
    f()
    derecha()
    f()
    derecha()
    f()
    escapar()

    3a
    from robot import *;
    derecha()
    avanzar()
    izquierda()
    if mirar() == Telarana:
      izquierda()
      avanzar()
      avanzar()
      derecha()
      avanzar()
      avanzar()
      derecha()
      avanzar()
      izquierda()
      escapar()
    else:
      avanzar()
      avanzar()
      izquierda()
      avanzar()
      derecha()
      escapar()


    3b
    from robot import *;
    def a():
      derecha()
      avanzar()
      izquierda()
      if mirar() == Telarana:
          izquierda()
          avanzar()
          avanzar()
          derecha()
          b()
          c()
          d()
      else:
          b()
          c()
          e()
    def b():
        while mirar() == Void: avanzar()
    def c():
        tomar()
        izquierda()
        izquierda()
        dejar()
        izquierda()
        izquierda()
    def d():
        b()
        derecha()
        avanzar()
        izquierda()
        escapar()
    def e():
        b()
        izquierda()
        avanzar()
        derecha()
        escapar()
    a()



    4a
    from robot import *;
    def a():
      while mirar() == Void:
        while mirar() == Void:
          avanzar()
        izquierda()
     
    a()
    escapar()


    4b
    from robot import *;
    def a():
       avanzar()
       izquierda()
       avanzar()
       avanzar()
     
    def volver():
        izquierda()
        izquierda()
        avanzar()
        avanzar()
        izquierda()
        avanzar()
     
    def salir():
        while mirar() == Void:
              avanzar()
        derecha()
        while mirar() == Void:
              avanzar()
        escapar()
     
    def intentar():
        a()
        while mirar() == Telarana:
              volver()
              a()
        else:
              salir()
           
    intentar()

    6 comentarios:

    1. Gracias me despejo muchas dudas, aporto unas instrucciones base

      Instrucciones
      -------------
      derecha()
      izquierda()
      avanzar()
      tomar()
      dejar()
      decir('mensaje')
      mirar()

      Valores de Mirar
      -----------------
      Pared, Piedra, Telarana, Salir, Desconocido, Void

      Condicional
      -----------
      if mirar() == Void:
      adelante()

      Ciclos
      ------
      while mirar() != Salir:
      forward()
      derecha()

      Funcion
      -------
      def caminar_hasta_pared():
      while mirar() == Void:
      avanzar()

      ResponderEliminar
    2. Muchas gracias. Me alegra un montón que alguien comente sobre este maravilloso e instructivo juego.

      ResponderEliminar
    3. Parece interesante esta manera de programar.

      ResponderEliminar
    4. Alguien sabe como puedes hacer una funcion como esta pero en C o en Java?

      from robot import *;
      def a():
      while mirar() == Void:
      while mirar() == Void:
      avanzar()
      izquierda()

      a()
      escapar()

      ResponderEliminar
    5. void function a(){
      while (mirar()==Void){
      while (mirar()==Void){ //el doble bucle no entiendo para que lo quieres pero bueno
      avanzar();
      izquierda();
      }
      }
      }

      void hormiga()
      {
      a();
      escapar();
      }

      ResponderEliminar
    6. ///te dejo el codigo en c del 2b, te puede aclarar las ideas
      void media_vuelta(){
      derecha();
      derecha();
      }

      void hormiga()
      {
      while(mirar()!=Salir){
      if(mirar()==Piedra){
      tomar();
      media_vuelta();
      dejar();
      media_vuelta();
      }else{
      avanzar();
      }
      }
      decir("TOMA YA!!");
      escapar();

      }

      ResponderEliminar

    El Plus

    Conexiones



    El Twitter