.
Estadisticas ¿Karel? como instalar Uso Comandos Omijal Extras

Vigas

Descripción

Karel entró a trabajar en una tienda de materiales de construcción, como parte de su entrenamiento (así es, no sólo los olímpicos sufren por tener que ser entrenados) le han pedido que catalogue los tipos de vigas que venden en la tienda. El almacén de las vigas es un cuarto rectangular con una puerta en la esquina inferior izquierda (Ver figura). Las vigas están acomodadas verticalmente recargadas en la pared del almacén.

Problema

Karel debe contar cuantas alturas distintas de vigas hay en el almacén y dejar un número de zumbadores igual a esa cantidad en la puerta del almacén.

Consideraciones

* Karel inicia en la puerta del almacén mirando al este.
* Karel inicia con 0 beepers en la mochila.
* Karel gana dos beeper-salarios mínimos.
* La altura de las vigas varía entre 1 y la altura máxima de la bodega.
* Puede haber espacios SIN vigas.
* Todas las vigas inician en la fila inferior del almacén.
* No importa la posición final de Karel ni de los beepers que no estén en la puerta.

Inicia en
y Termina
Ultimo fuente
Programa al problema "Vigas"
2020-04-14 13:36:44 pm Luis_Hernandez
class program {

   void triste(b) {
      move();
      turnleft();
      while (frontIsClear()) {
         move();
      }
      turnleft();
      turnleft();
      turnleft();
      while (frontIsClear()) {
         while (frontIsClear()) {
            if (nextToABeeper()) {
               pickbeeper();
               triste(succ(b));
            }
            if (frontIsClear()) {
               move();
            }
         }
         if (nextToABeeper()) {
            pickbeeper();
            triste(succ(b));
         }
      }
      turnleft();
      turnleft();
      while (frontIsClear()) {
         move();
      }
      turnleft();
      while (frontIsClear()) {
         move();
      }
      iterate (3) {
         turnleft();
      }
      move();
      iterate (b) {
         putbeeper();
      }
      turnoff();
   }

   void levantalos(a) {
      pickbeeper();
      if (frontIsClear()) {
         move();
         levantalos(succ(a));
      }
      else {
         turnleft();
         turnleft();
         iterate (a) {
            move();
         }
         iterate (3) {
            turnleft();
         }
      }
   }

   void dinosaurio() {
      turnleft();
      turnleft();
      move();
      while (notNextToABeeper()) {
         move();
      }
      pickbeeper();
      turnleft();
   }

   void feliz() {
      while (frontIsClear()) {
         move();
         if (nextToABeeper()) {
            iterate (3) {
               turnleft();
            }
            levantalos(0);
         }
      }
      turnleft();
      turnleft();
      while (frontIsClear()) {
         move();
      }
      turnleft();
      if (frontIsClear()) {
         move();
         turnleft();
      }
      else {
         turnleft();
      }
   }

   program() {
      move();
      turnleft();
      while (frontIsClear()) {
         move();
      }
      iterate (3) {
         turnleft();
      }
      while (rightIsClear()) {
         while (frontIsClear()) {
            if (nextToABeeper()) {
               iterate (3) {
                  turnleft();
               }
               move();
               while (frontIsClear()) {
                  pickbeeper();
                  move();
               }
               pickbeeper();
               turnleft();
               turnleft();
               while (frontIsClear()) {
                  move();
               }
               putbeeper();
               dinosaurio();
               feliz();
            }
            else {
               move();
            }
         }
         turnleft();
         turnleft();
         while (frontIsClear()) {
            move();
         }
         turnleft();
         move();
         turnleft();
      }
      while (frontIsClear()) {
         if (nextToABeeper()) {
            pickbeeper();
            turnleft();
            while (frontIsClear()) {
               move();
            }
            putbeeper();
            turnleft();
            turnleft();
            while (frontIsClear()) {
               move();
            }
            iterate (3) {
               turnleft();
            }
            while (frontIsClear()) {
               move();
            }
            turnleft();
            turnleft();
            triste(0);
         }
         if (frontIsClear()) {
            move();
         }
      }
      turnleft();
      turnleft();
      while (frontIsClear()) {
         move();
      }
      turnleft();
      turnleft();
      triste(0);
      if (frontIsClear()) {
         move();
      }
      turnoff();
   }
}
Si desea donar:

Problemas

Atinale al Beeper...(5948)
01/08/2011
Beeper o Castigo...(3570)
01/08/2011
La maldicion de los Beepe...(3522)
01/08/2011
Diez Avenidas con Vallas...(3996)
01/08/2011
Dividiendo segmentos...(3202)
01/08/2011
Ve por Leña...(3945)
01/08/2011
Karel en una Callejoneada...(3663)
01/08/2011
Karel Traviesa...(3997)
01/08/2011
Karel y Gretel...(5348)
01/08/2011
Karel y Gretel en la Feri...(4391)
01/08/2011

Fuentes

Las Escaleras...(67)
19/04/2021
Diez Avenidas con Vallas...(30)
16/04/2021
Vigas...(80)
14/04/2020
Vigas...(61)
14/04/2020
La moneda...(593)
22/07/2017
Primer fuente...(456)
13/10/2012
Fuente las escaleras...(467)
16/05/2012
Fuente Tumbando cabos...(282)
15/05/2012
Fuente Repartiendo...(327)
15/05/2012
Fuente La Torre...(422)
15/05/2012

.: Publicidad :.