4º ESO – Programación con MSWLogo – Videojuego de coches (III)

La tortuga en movimiento permanente

Nuestro vehículo del juego de coches (la tortuga) tiene que arrancar y avanzar de manera constante, nosotros sólo le haremos girar accionando las teclas correspondientes del teclado numérico. Para dotar a la tortuga de este avance permanente vamos a utilizar la instrucción siempre:

siempre [instrucciones]

Repite constantemente las instrucciones encerradas entre los corchetes, hasta que pulsemos el botón Alto.

Ejemplo: siempre [av 1]

En el ejemplo anterior, la instrucción avanza 1 se repite permanentemente. Si la probamos en el ordenador veremos que la tortuga se mueve a gran velocidad, casi no podremos verla. Para disminuir la velocidad del movimiento podemos incluir la instrucción espera:

espera tiempo

Detiene la ejecución de un procedimiento durante el tiempo especificado (éste se expresa en 1/60 segundos), una vez transcurrido continúa con la ejecución del resto de instrucciones.

Ejemplos: 
espera 1 Detiene el programa durante 1/60 segundos (0’0166 segundos).
espera 60 Detiene el programa durante 1 segundo.
espera 300 Detiene el programa durante 5 segundos.
espera 3600 Detiene el programa durante 1 minuto.

En definitiva, para mover nuestro vehículo introducimos la instrucción espera 1 para provocar un retraso entre los avances de la tortuga. Así lo hemos hecho en un procedimiento que denominamos juego que provoca un avance lento de la tortuga:

para juego
sl
siempre [av 1 espera 1]
fin

En muchos casos nos interesará que una o varias instrucciones se repitan, pero no de manera indefinida, sino un número determinado de veces. Para ello se utiliza la instrucción repite:

repite nº de veces [primitivas a repetir]

Repite el nº de veces indicado las órdenes encerradas entre corchetes.

Ejemplo: Para dibujar un cuadrado podemos repetir 4 veces las órdenes av 100 gd 90. Es decir:

repite 4 [av 100 gd 90]

Puesto que el ordenador tarda un cierto tiempo en ejecutar las instrucciones, si repetimos “nada” un determinado número de veces conseguiremos provocar un retraso que, en este caso, dependerá de la rapidez del ordenador y habrá que determinar haciendo varias pruebas. Si utilizando espera 1 el movimiento es muy lento podemos modificar el procedimiento anterior de la forma siguiente:

para juego
sl
siempre [av 1 repite 2000 []]
fin


Actividades

7a. Programa un reloj con segundero y minutero.

Ejemplo básico:

para segundero
subelapiz av 200 gd 90 bajalapiz repite 360 [av 2 gd 1] bajalapiz gi 90 re 100
repite 60 [ot av 100 espera 60 goma re 100 gd 6 ponlapiz ]
fin

 

7. Hacer un procedimiento denominado parpadeo que repita permanentemente el siguiente ciclo: se dibuja un cuadrado de lado 50 (hacer un procedimiento llamado cuadrado), transcurrido medio segundo se borra y, tras otro medio segundo, se vuelve a iniciar el ciclo.

8. Realizar un procedimiento (lo llamaremos apilar) que dibuje 4 cuadrados de lado 20 uno encima del otro,
pero separados una distancia de 5 puntos (utilizar la instrucción repite).

9. Escribir un procedimiento llamado lado que dibuje una línea vertical de 100 puntos lentamente y otro,
denominado cuadrado_lento, que dibuje un cuadrado de lado 100 lentamente.

Siguiente: Programación con MSWLogo (IV)

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s