Miércoles 14 de Abril

Guia 1: La tortuga

Esta guía es un complemento a la clase de cátedra del día Miércoles 14 de Abril. Antes de realizar esta guía revise los conceptos vistos en esa cátedra.


Ejercicio 1:

Recupere el programa Cuadrado.java (ponga el curso sobre el link, presione el botón derecho del mouse sin soltarlo y elija la opción Save Link As).

El contenido de este programa es:

    import robot.*; // El paquete en donde se encuentra Tortuga

    class Cuadrado extends Program {
      void run() {
        Tortuga tort= new Tortuga();
        int i= 1;
        while (i<=4) {
          tort.mover(60);
          tort.virarDer(90);
          sleep(0.5); // bloquea la ejecución por medio segundo
          i= i+1;
        }
      }
    } 
Compílelo y ejecutelo.

Explicación:

Cambie la siguiente línea:

          sleep(0.5); // bloquea la ejecución por medio segundo
por:

          // sleep(0.5); // bloquea la ejecución por medio segundo
Esto se llama ``comentar'' un trozo código, puesto que el compilador de Java tomará esa línea como un comentario, y no como una instrucción. El efecto es que ahora no se producirá la pausa de antes.

Recompile y ejecute. El robot/tortuga es en realidad mucho más rapido que su contraparte natural ;-).


Ejercicio 2:

Modifique el programa de modo que se construya una tortuga que dibuje en color rojo mediante:

        Tortuga tortRoja= new Tortuga();
        tortRoja.enRojo();
        tortRoja.virarDer(30);
        ...
Haga que esta tortuga dibuje un triángulo (haga que la tortuga vire en ángulos de 120 grados). Su triángulo debe quedar con la siguiente orientación:


Ejercicio 3:

Recupere el programa Luna.java. Su contenido es el siguiente:

    import robot.*;

    class Luna extends Program {
      void run() {
        Tortuga tort= new Tortuga();
        // Dibuja 36 cuadrados
        int cuadrados= 1;
        while (cuadrados<=36) {
          // Dibuja un cuadrado
          int i= 1;
          while (i<=4) {
            tort.mover(60);
            tort.virarDer(90);
            sleep(0.1);
            i= i+1;
          }
          tort.virarDer(10); // (*)
          cuadrados= cuadrados+1;
        }
      }
    }
Este programa dibuja 36 cuadrados como los del ejercicio 1, pero cada cuadrado esta rotado en 10 grados con respecto al anterior. Esto se logra con la instrucción (*).

Comente la línea:

            sleep(0.1);
Recompile y ejecute. ¡Observe cuán rápida es esta tortuga!.


Ejercicio 4:

Recupere el programa Spiral.java. Su contenido es el siguiente:

    import robot.*;

    class Spiral extends Program {
      void run() {
        Tortuga tort1= new Tortuga();
        Tortuga tort2= new Tortuga();
        tort1.enVerde();
        tort1.virarIzq(120);
        tort2.enRojo();
        tort2.virarIzq(60);
        int dist= tort1.maxx()/4; // (*)
        while (dist>1) {
          tort1.mover(dist);
          tort1.virarIzq(70);
          tort2.mover(dist);
          tort2.virarDer(70);
          sleep(0.2);
          dist= dist-1; // (**)
        }
      }
    }
Compile y ejecute.

En este programa se invoca en (*) un nuevo método de las tortugas. Este método indica hasta donde puede moverse una tortuga en la coordenada X sin desapararecer de la pantalla.

El programa crea dos tortugas de distinto color. Ambas tortugas se van turnando para avanzar. Como ambas tortugas viran en direcciones opuestas (la verde a la izquierda y la roja a la derecha), forman figuras simétricas.


Ejercicio 5:

Remplace las siguientes líneas:

        Tortuga tort1= new Tortuga();
        Tortuga tort2= new Tortuga();
por:

        Tortuga tort1= new Tortuga();
        Tortuga tort2= tort1;
Recompile y ejecute. Encuentre una explicación de por qué no aparece ningún rastro de la tortuga verde y por qué la tortuga roja se sale de la pantalla.

(Indicación: acuérdese de los teléfonos celulares.)


Ejercicio 6 (voluntario):

Dibuje con 2 tortugas alguna otra figura como las de los ejercicios 3 y 4.