Juegos en StarLogo TNG Tercera Parte

54
Juegos en StarLogo TNG - Juan Javier Guampe - 2012 Página 64 CAPÍTULO III Más juegos sencillos Más bloques de programación Introducción al uso de variables Cap 3

description

Tercer capítulo del libro "Juegos en StarLogo TNG"

Transcript of Juegos en StarLogo TNG Tercera Parte

Page 1: Juegos en StarLogo TNG Tercera Parte

Juegos en StarLogo TNG - Juan Javier Guampe - 2012Página 64

CAPÍTULO III

Más juegos sencillos

Más bloques de programación

Introducción al uso de variables

Cap3

Page 2: Juegos en StarLogo TNG Tercera Parte

Juegos en StarLogo TNG - Juan Javier Guampe - 2012 Juegos en StarLogo TNG - Juan Javier Guampe - 2012Página 64 Página 65

Juego 6: Laberinto

Crear un juego en donde el personaje principal deba encontrar la salida al laberinto dibujado en el SPACELAND. Si el jugador toca las paredes pierde o desaparece del juego. Se deberá también indicar el tiempo invertido en resolver el laberinto.

? ProblemaPlan

1. Preparar las condiciones iniciales:- Eliminar las dos tortugas de inicio- Crear el personaje principal - Ajustar las propiedades: Posición, etc.2. Asignar las teclas para el movimiento del personaje y la programación cuando éste toque las paredes del laberinto3. Dibujar el laberinto en el SPACELAND

Programando

La imagen inferior muestra los bloques que se han colocado en la sección “Setup” del CANVAS: Se ha creado un solo agente (Turtle), se ha colocado en una posición adecuada (El inicio del laberinto) y se ha usado un nuevo bloque llamado “overhead on”, el cual permite que al inicio del juego se muestre la visión superior del SPACELAND, disponible solamente en dos dimensiones. Finalmente se han usado los bloques para reiniciar y mostrar el reloj.

ComentariosLa imagen superior muestra una visión general de toda la programación en el CANVAS. En este caso no se ha modificado ni el nombre por defecto del personaje (Turtle), ni su forma de tortuga.

Page 3: Juegos en StarLogo TNG Tercera Parte

Juegos en StarLogo TNG - Juan Javier Guampe - 2012Página 66

Juego 6: Laberinto

El procedimiento “caminar” se ha realizado en la sección “Turtles” del CANVAS y se usa para programar el movimiento del personaje a través de las teclas de flechas, así como para desaparecer al jugador cuando éste toque las zonas de color azul, es decir, las paredes del laberinto. También se ha programado el despliegue del mensaje “Pude salir del laberinto” cuando el personaje toque la zona de color rojo (Salida).

Comentarios

Page 4: Juegos en StarLogo TNG Tercera Parte

Juegos en StarLogo TNG - Juan Javier Guampe - 2012 Juegos en StarLogo TNG - Juan Javier Guampe - 2012Página 66 Página 67

Juego 6: Laberinto

Con ayuda de las herramientas de dibujo (Drawing) se crea un laberinto como el que se muestra en la imagen. Dentro de la programación se ha establecido un punto de salida y de llegada que debe tenerse en cuenta, así como el color azul de las paredes y el rojo de salida. Es posible dibujar el laberinto desde la vista superior en dos dimensiones si damos click sobre la opción “Swap Views”

Comentarios

Page 5: Juegos en StarLogo TNG Tercera Parte

Juegos en StarLogo TNG - Juan Javier Guampe - 2012Página 68

Juego 6: Laberinto

Si bien en la programación se ha establecido la visión superior en dos dimensiones desde el inicio del juego, también es posible jugarlo desde otros puntos de vista en tres dimensiones, como la vista aérea, la vista desde el ojo del personaje (Agent Eye) y la vista desde el personaje (Agent View). Para realizar este cambio sólo basta dar click sobre la opción “Swap Views” y sobre las opciones

Comentarios

Esta imagen muestra el juego desde el punto de vista del personaje (Agent View), la cual es una vista en tres dimensiones. Al jugar desde este ángulo quizás sea un poco más difícil controlar el movimiento del personaje, pues se puede perder fácilmente el punto de referencia

Comentarios

Page 6: Juegos en StarLogo TNG Tercera Parte

Juegos en StarLogo TNG - Juan Javier Guampe - 2012 Juegos en StarLogo TNG - Juan Javier Guampe - 2012Página 68 Página 69

Juego 6: Laberinto

Las imágenes conseguidas en Internet deberán tener colores consistentes, es decir, sin cambios en la intensidad de los colores usados, por esta razón es preferible el formato GIF.

Desde StarLogo TNG se deberá verificar si los colores de la imagen utilizada responden a uno de los 16 colores explicados en el Juego 1 (Capítulo 2). De no ser así, se debe intentar con el código del color. Recordemos que los colores en StarLogo TNG también se pueden identificar por números, por ejemplo, el color azul tiene el código 105, el rojo 15 y el amarillo 45.

Con una búsqueda sencilla en Internet, es posible conseguir una imagen de un laberinto ya creado. Para usarla en StarLogo TNG se debe primero descargar y guardar la imagen en el computador y luego se puede llevar al SPACELAND a través de la opción “Drawing” e “Image”. Una vez seleccionada la imagen se debe ubicar el puntero del mouse en la posición superior izquierda y sin soltar el botón se debe arrastrar hasta la parte inferior

Comentarios

Page 7: Juegos en StarLogo TNG Tercera Parte

Juegos en StarLogo TNG - Juan Javier Guampe - 2012Página 70

Juego 6: Laberinto

Bloques adicionales usadosEste bloque se encuentra en el cajón “Controls” de la pestaña “Factory”..Su función es la de permitir una vista aérea o superior del SPACELAND, aunque no en tres dimensiones sino en dos. Dentro del juego se empleó para mostrar el laberinto desde una vista superior en 2D y permitir que el jugador vea completamente el camino que debe seguir. Esta vista también se puede ajustar manualmente dando click en la opción “Swap Views” que se encuentra en el SPACELAND.

Con la imagen del laberinto encontrada en Internet se tuvo que hacer una pequeña modificación en el color: Inicialmente las paredes del laberinto dibujado eran de color azul (Código 105 ó sencillamente el bloque “Blue”), sin embargo, las paredes de la imagen tienen una escala de azul un poco diferente, así que fue necesario ajustar el color al código 101, el cual corresponde a la escala de azul de la imagen insertada en el SPACELAND.

Comentarios

Page 8: Juegos en StarLogo TNG Tercera Parte

Juegos en StarLogo TNG - Juan Javier Guampe - 2012 Juegos en StarLogo TNG - Juan Javier Guampe - 2012Página 70 Página 71

Juego 7: Encuentra un tesoro

Crear un juego en donde el personaje principal debe encontrar un tesoro en un tiempo inferior a 80 segundos. Para alcanzarlo, deberá recoger tres pistas que le permitirán ir avanzando en el juego.El jugador deberá descubrir en qué orden necesita recoger las pistas.

? ProblemaPlan

1. Preparar las condiciones iniciales:- Eliminar las dos tortugas de inicio- Crear el personaje principal y las pistas- Ajustar las propiedades: Posición, etc.2. Asignar las teclas para el movimiento del personaje y la programación cuando éste toque a los otros objetos (Pistas)3. Dibujar un obstáculo en el SPACELAND4. Probar y hacer modificaciones

Programando

Uno de los aspectos más interesantes de este juego es que enseña cómo crear un juego sencillo y entretenido con pocos bloques de programación. El objetivo principal es el de tocar el objeto “Tesoro” en menos de 80 segundos, sin embargo, para acceder a este objeto se requiere primero haber recogido otros tres elementos (Pistas) en un orden específico. La colisión entre el personaje y las pistas va mostrando lo que debe hacer el jugador.

La imagen inferior muestra una visión general de la programación en el CANVAS. Aquí se puede ver que el número de personajes es cinco y que la mayor parte de bloques de programación se encuentran en las secciones “Setup”, “Collisions” y “Jugador”. El primer paso será entonces crear los cinco personajes.

Comentarios

Page 9: Juegos en StarLogo TNG Tercera Parte

Juegos en StarLogo TNG - Juan Javier Guampe - 2012Página 72

Juego 7: Encuentra un tesoro

Como se ve en la imagen, se han creado cinco personajes, cada uno perteniciente a una familia diferente y se han tomado diferentes formas: Hormiga, casa, pirámide, cono y esfera. Los nombres de cada uno se han ajustado a: “Jugador”, “Tesoro”, “Pista1”, “Pista2” y “Pista3” respectivamente.

El siguiente paso en este proceso de creación del juego será el de crear los personajes en el canvas, ajustando las propiedades como la posición de cada uno, el tamaño y el color.

Comentarios

Page 10: Juegos en StarLogo TNG Tercera Parte

Juegos en StarLogo TNG - Juan Javier Guampe - 2012 Juegos en StarLogo TNG - Juan Javier Guampe - 2012Página 72 Página 73

Juego 7: Encuentra un tesoro

En la sección “Setup” del CANVAS se ha incluido el bloque “Setup” que ayuda a establecer las condiciones iniciales del juego. Se ha empezado con el bloque “clear everyone” para eliminar las dos tortugas de incio o para borrar cualquier personaje cuando se quiera jugar nuevamente.

Los demás bloques ayudan a crear a los cinco personajes, cada uno de ellos en una posición específica y en algunos casos con un tamaño y un color ya establecido.

Dentro del bloque “create Jugador” se ha incluido un nuevo bloque llamado “model skin off”, el cual permite colorear a los personajes cuandos éstos tienen una forma que utiliza múltiples colores. En otras palabras, el bloque permite quitar primero la “máscara” que acompaña a ciertas formas para permitir que los personajes puedan ser coloreados.

Finalmente se han incluido los bloques para mostrar el reloj y para reiniciarlo a cero cada vez que se oprima el bloque “Setup” que aparece en el SPACELAND.

Comentarios

Page 11: Juegos en StarLogo TNG Tercera Parte

Juegos en StarLogo TNG - Juan Javier Guampe - 2012Página 74

Juego 7: Encuentra un tesoro

Esta es la p r o g r a m a c i ó n correspondiente al “Jugador”, la cual se ha hecho en la sección “Jugador” del CANVAS. Se ha creado un procedimiento con el nombre de “Caminar” y dentro de él se ha establecido el comportamiento del personaje. Los cuatro primeros bloques “if” ayudan a controlar el movimiento del jugador, mientras que el bloque “if” final tiene dentro de sí a otro bloque “ifelse”. La función de esta parte es la de permitir el paso del “Jugador” a través de la zona de color azul, siempre y cuando el jugador tenga la forma (shape) de “OSO” .

Cuando el jugador intente cruzar la zona azul (Primer “if”), se ejecutará la segunda pregunta (Segundo “if-else”), de ser verdadera, el jugador será llevado a la parte superior izquierda, de no ser así, será devuelto a la parte inferior izquierda y se desplegará el mensaje “Debes ser un Oso para pasar”

Comentarios

Page 12: Juegos en StarLogo TNG Tercera Parte

Juegos en StarLogo TNG - Juan Javier Guampe - 2012 Juegos en StarLogo TNG - Juan Javier Guampe - 2012Página 74 Página 75

Juego 7: Encuentra un tesoro

En la sección “Runtime” del CANVAS se ha colocado un bloque “forever” y dentro de él, en la sección correspondiente al “Jugador”, se ha colocado el procedimiento “Caminar”, previamente creado.El resto de la programación se realiza en la sección “Collisions” del CANVAS. Allí se utilizan los cuatro bloques de colisión que incluyen al jugador con respecto a los demás personajes: Jugador-Pista1, Jugador-Pista2, Jugador-Pista3 y Jugador-Tesoro. El orden correcto para llegar hasta el tesoro es tocar primero al personaje “Pista2”, el cual cambiará el color del Jugador a “Rojo”, posteriormente podrá ir hasta el personaje “Pista1” quien cambiará el tamaño del Jugador a 10. Con este nuevo tamaño podrá ir hasta el personaje “Pista3”, quien cambiará su forma a la de un

“Oso” y reducirá otra vez su tamaño.

Comentarios

Page 13: Juegos en StarLogo TNG Tercera Parte

Juegos en StarLogo TNG - Juan Javier Guampe - 2012Página 76

Juego 7: Encuentra un tesoro

Si el “Jugador” intenta tocar las pistas en el orden incorrecto, aparecerá un mensaje que le indica la condición que debe cumplir primero (Color, tamaño y forma), igualmente, si intenta cruzar la zona de color azul sin haber cumplido la condición será devuelto al punto de partida.

El bloque de colisión final entre el “Jugador” y el “Tesoro” se encarga de desaparecer el personaje “Tesoro” cuando se presenta la colisión y además despliega dos mensajes: “Tesoro encontrado!”, cuando el tiempo invertido fue menor a 80 segundos e “Intenta otra vez”, cuando el tiempo invertido en llegar hasta el tesoro fue mayor a 80 segundos.

Comentarios

Page 14: Juegos en StarLogo TNG Tercera Parte

Juegos en StarLogo TNG - Juan Javier Guampe - 2012 Juegos en StarLogo TNG - Juan Javier Guampe - 2012Página 76 Página 77

Juego 7: Encuentra un tesoro

En el SPACELAND, en la parte superior es necesario dibujar una línea gruesa de color azul, para esto se puede usar la herramienta “Rectangle” que se encuentra en la pestaña “Drawing”.

Como se ve en las imágenes de la parte inferior de esta página, cada vez que el “Jugador” intenta tocar las pistas en el orden incorrecto aparece un mensaje indicándole lo que debe hacer primero.

Comentarios

Page 15: Juegos en StarLogo TNG Tercera Parte

Juegos en StarLogo TNG - Juan Javier Guampe - 2012Página 78

Juego 7: Encuentra un tesoro

Bloques adicionales usadosEste bloque se encuentra en el cajón “Traits” de la pestaña “Factory”. Se utiliza para quitar de muchos de los personajes de StarLogo TNG, la máscara (skin) que los cubre y entonces permitir que sean coloreados de un color a decisión del programador. Varias de las formas disponibles en StarLogo TNG no tienen máscara (skin), por tanto se les puede aplicar directamente un color, sin necesidad de usar el bloque “model skin off”

Este bloque se encuentra en el cajón “Traits” de la pestaña “Factory”. Este bloque reporta la forma (shape) que tiene un personaje. Dentro del juego se usó, junto al bloque igual para comparar si la forma del “Jugador” era igual a la forma de “Oso”, de ser verdadera esta condición entonces el jugador podría atravesar la línea azul y llegar al “Tesoro”

Trata de hacer las siguientes modificaciones:

- Intenta incluir más “Pistas” dentro del juego, haciendo mucho más difícil llegar hasta el “Tesoro”. Cambia también las condiciones, tales como: Altura (Altitude), dirección (Heading) y otras.

- Cambia algunos parámetros, como el tiempo límite, las posiciones a las cuales se lleva al personaje, las formas, el tamaño, etc.

- Crea más personajes que compitan con el “Jugador” en la búsqueda del “Tesoro”, programando más acciones para los demás personajes.

Introducción a las variables

Los próximos juegos que se explicarán en este libro utilizarán VARIABLES, las cuales son usadas en todos los lenguajes de programación y constituyen una de las herramientas más poderosas para desarrollar software. Usar variables en la creación de juegos, con StarLogo TNG, permitirá extender las posibilidades, resolver problemas y permitir que muchas ideas se pongan en práctica.

Por ahora vamos a partir de una definición de variable que ayudará a entender su función: Las variables son elementos para almacenar datos, tanto antes, como durante la ejecución de un juego y esos datos que guardan pueden ser de diferente tipo, como números, texto o listas.

Page 16: Juegos en StarLogo TNG Tercera Parte

Juegos en StarLogo TNG - Juan Javier Guampe - 2012 Juegos en StarLogo TNG - Juan Javier Guampe - 2012Página 78 Página 79

Juego 8: Escapar

Crear un juego en donde el personaje principal debe llegar a una meta, evitando a otros personajes que le persiguen, así como evitar tocar a otros objetos estáticos que están en el SPACELAND.

? ProblemaPlan

1. Preparar las condiciones iniciales:- Eliminar las dos tortugas de inicio- Crear el personaje principal, los personajes perseguidores y los objetos.- Ajustar las propiedades: Posición, etc.2. Asignar las teclas para el movimiento del personaje3. Programar el movimiento de los personajes perseguidores4. Dibujar en el SPACELAND dos zonas5. Probar y modificar mediante el uso de variablesProgramando

Lo primero será crear los tres personajes de diferente familia, como se muestra en la imagen: Jugador, Cazador y Objetos, así como asignar las formas

Comentarios

Page 17: Juegos en StarLogo TNG Tercera Parte

Juegos en StarLogo TNG - Juan Javier Guampe - 2012Página 80

Juego 8: Escapar

Esta es la programación inicial realizada en la sección “Setup” del CANVAS. Se utiliza un bloque “clear everyone” para eliminar las tortugas de inicio, así como para poder borrar a los personajes con cada inicio del juego. Los demás bloques se usan para crear a cada personaje y establecer algunas propiedades, por ejemplo, se crea al “Jugador” con una tamaño=2 y una posición determinada. Del personaje “Cazador” se crean 3 elementos con tamaño=2 y se colocan al azar dentro del terreno (scatter Cazador) y del personaje “Objetos” se crean 20 e igualmente se colocan al azar.La imagen inferior muestra una visión general de la programación.

Comentarios

Page 18: Juegos en StarLogo TNG Tercera Parte

Juegos en StarLogo TNG - Juan Javier Guampe - 2012 Juegos en StarLogo TNG - Juan Javier Guampe - 2012Página 80 Página 81

Juego 8: Escapar

Este procedimiento “Correr” se realiza en la sección “Jugador” del CANVAS. Aquí hacemos posible el movimiento del jugador, así como la desaparición de los personajes perseguidores cuando el “Jugador” ha alcanzado una zona de color azul (Meta o llegada).

cada uno de los personajes en un juego o programa de StarLogo TNG está identificado con un número llamado ID, el cual es único para cada uno, sin importar si pertenecen a una misma familia o a familias diferentes.

Los tres “Cazadores” están identificados con los números ID=1, ID=2 e ID=3. Estos rasgos (Traits) de los personajes se pueden ver fácilmente si damos click sobre cada uno de los personajes en el SPACELAND, como se enseña a continuación.

El concepto de VARIABLE se puede entender más fácilmente, si vemos los rasgos que cada personaje tiene. Las variables son rasgos adicionales que podemos crear en los personajes para luego usarlos para los fines que hemos planeado.

A continuación analizaremos los rasgos o características de los personajes de nuestro juego.

Comentarios

Page 19: Juegos en StarLogo TNG Tercera Parte

Juegos en StarLogo TNG - Juan Javier Guampe - 2012Página 82

Juego 8: Escapar

Esta ventana muestra los rasgos o características principales que StarLogo TNG ha dado por defecto al personaje “Jugador” en el momento de su creación. Por ejemplo se puede ver la forma del personaje, el número de identificación ID (En este caso es CERO, pues aparece al lado del nombre del peronaje). También aparecen otros rasgos como la coordenada “X”, la coordenada “Y”, la dirección a la que apunta (Heading), la altura, el tamaño, el color, la condición del lápiz y su visibilidad.

Comentarios

Existen también rasgos particulares y otros compartidos para cada uno de los tres personajes “Cazadores”. Esta imagen muestra al “Cazador” con el número ID=1. Dentro de los rasgos que son iguales podemos ver que comparten la misma forma (Perro), la altura=0, el tamaño (Size=2) y las últimas dos propiedades de lapiz y visibilidad.

En cuanto a los rasgos diferentes están las coordenadas “X” y “Y”, el color y la dirección hacia donde apuntan (Heading).

Estos rasgos, propiedades o características de los personajes se pueden utilizar dentro de la programación, especialmente a la hora de tomar decisiones.

Comentarios

Page 20: Juegos en StarLogo TNG Tercera Parte

Juegos en StarLogo TNG - Juan Javier Guampe - 2012 Juegos en StarLogo TNG - Juan Javier Guampe - 2012Página 82 Página 83

Juego 8: Escapar

Las dos imágenes de arriba muestran las propiedades o rasgos de los otros dos personajes “Cazadores”, identificados con los números ID=2 e ID=3.

La imagen inferior enseña los rasgos de uno de los veinte “Objetos” con forma de árbol que hay en el SPACELAND. Éste en particular está identificado con el número ID=15, tiene asociado un color 115, un tamaño 1, una altura de cero y unas coordenadas “X” y “Y” particulares, así como una dirección.

Los otros 19 “Objetos” tendrán un número ID diferente, algunos rasgos en común y otros únicos.

Comentarios

Page 21: Juegos en StarLogo TNG Tercera Parte

Juegos en StarLogo TNG - Juan Javier Guampe - 2012Página 84

Juego 8: Escapar

Se ha creado el procedimiento “Cazar” en la sección “Cazador” del CANVAS. Este procedimiento se encarga de mover a los tres cazadores detrás del “Jugador”, quien tiene el ID=0. Para ello se usan los bloques “set heading” (dirigirse), “towards” (hacia), “xcor of ID” y “ycor of ID” (las coordenadas “X” y”Y” del personaje que tenga el número ID asociado al final del bloque. También se establece que los tres cazadores no puedan tocar las zonas amarillas o azules (Salida y llegada)Las imágenes inferiores muestran la programación de la sección “Collisions” y de la sección “Runtime”, ésta última incluye un bloque “forever” con los dos procedimientos creados. En las colisiones se ha establecido lo que pasa cuando los personajes se tocan,

por ejemplo, desaparecer (die) o mostrar un mensaje (say)

Comentarios

Page 22: Juegos en StarLogo TNG Tercera Parte

Juegos en StarLogo TNG - Juan Javier Guampe - 2012 Juegos en StarLogo TNG - Juan Javier Guampe - 2012Página 84 Página 85

Juego 8: Escapar

En el terreno (La parte verde del SPACELAND) se deben crear dos zonas seguras, una de color amarillo, desde donde inicia el “Jugador” ubicada en la parte inferior izquierda, y otra de color azul, a donde debe llegar el “Jugador” para quedar a salvo.

Comentarios

¡Es hora de usar VARIABLES!Empezaremos a entender el concepto de variable con base en este mismo juego que acabamos de realizar. Emplearemos una variable para:

- Almacenar el número de identificación del “Jugador” ó ID- Perseguir al personaje que tenga el ID almacenado en la variable.

En términos generales, para usar una variable se debe hacer lo siguiente:1. CREAR la variable y asignar un nombre. Se debe seleccionar el tipo de variable apropiada, dependiendo de la necesidad que se tenga.2. UBICAR la variable en la sección adecuada del CANVAS. Algunos tipos de variable necesitan ser ubicadas en secciones específicas del CANVAS.3. INICIAR la variable con un valor. Esto se hace en la configuración inicial.4. UTILIZAR lo que hay almacenado en la variable dentro del funcionamiento del juego o programa creado.5. CAMBIAR el contenido de la variable. Frecuentemente cuando los personajes interactuan, o cuando se cumplen algunas condiciones, se cambia lo que está almacenado en la variable.

Page 23: Juegos en StarLogo TNG Tercera Parte

Juegos en StarLogo TNG - Juan Javier Guampe - 2012Página 86

Juego 8: Escapar

Las variables se encuentran agrupadas en el cajón “Variables” de la pestaña “Factory”. En StarLogo TNG existen diferentes tipos de variables, unas de color azul que se utilizan para crear rasgos únicos para cada personaje, incluso al interior de una misma familia, es decir que cada personaje tendrá una copia de la variable creada y el valor allí almacenado será diferente del valor de la misma variable para otro personaje. Otro tipo de variables son las de color púrpura. Este tipo de variables almacenan valores que pueden ser compartidos por los personajes. En este caso sólo existe una variable para todos y no múltiples como en el caso anterior

Comentarios

El tipo de variable que se ha usado en este juego es una de color púrpura llamada “shared number”. La razón para esto es la necesidad que tenemos en el momento. En este juego solo queremos almacenar el número que identifica al “Jugador”, es decir su ID. Este ID es un número que se puede compartir (share), en otras palabras, es un valor que todos los demás personajes del juego conocen. Al utilizar una variable compartida (share) hacemos posible que cualquier personaje dentro del juego pueda saber y modificar lo que está almacenado en ella. Una variable compartida puede ubicarse en cualquiera de las secciones de personajes del CANVAS, incluso en la sección “Everyone” como en este caso, sin embargo, debemos recordar dónde la colocamos para encontrarla fácilmente en el cajón.

Comentarios

Page 24: Juegos en StarLogo TNG Tercera Parte

Juegos en StarLogo TNG - Juan Javier Guampe - 2012 Juegos en StarLogo TNG - Juan Javier Guampe - 2012Página 86 Página 87

Juego 8: Escapar

Además de haber usado una variable compartida (Púrpura) se ha usado una variable numérica (shared number), puesto que la usaremos para guardar el ID, que es un número. Debemos también asignarle un nombre, en este juego se ha dado el nombre “perseguir”.

El siguiente paso es INICIALIZAR la variable con un valor y para esto usamos la sección “Setup”. Cuando se crea una variable, automáticamente se crean tres bloques, uno para INICIAR (set) la variable, otro para saber el valor de la variable y otro para incrementar (inc). En nuestro ejemplo estos bloques están dentro del cajón “Everyone”Como queremos que la variable almacene el número de identificación ID del “Jugador”, solamente debemos colocarla en el bloque “create Jugador”, en su parte “do” y asignarle el bloque ID, el cual reporta los ID’s de los personajes.

Comentarios

Page 25: Juegos en StarLogo TNG Tercera Parte

Juegos en StarLogo TNG - Juan Javier Guampe - 2012Página 88

Juego 8: Escapar

El paso final es USAR la variable. Ya que la variable tiene almacenado el número ID del “Jugador”, puesto que lo hicimos en el paso anterior cuando asociamos el bloque ID a la variable “perseguir”, más exactamente al bloque de INICIO de la variable: “Set perseguir”, podemos decir que la variable ya está cargada con un valor (En este caso con el número cero que identifica al “Jugador”).

Con respecto al juego que se explicó anteriormente, solo se ha cambiado el ID inicial (Número cero) con el nombre de la variable (perseguir). No hay que olvidar que este bloque se encuentra en el cajón “Everyone” que identifica la sección en donde se creó la variable.

Hubiese sido también posible haber asignado directamente el número cero a la variable, en la parte “Setup”, sin embargo, el bloque ID de color azul reporta automáticamente dicho valor y lo hace con base en el lugar en donde se coloque, y ya que se colocó dentro del bloque “create Jugador”, reporta el valor ID de dicho personaje. Esto trae muchas ventajas, por ejemplo, si quisiéramos perseguir a otro personaje, solo bastaría con cambiar el lugar de inicio de la variable (“set perseguir”) al bloque correspondiente a dicho personaje y no tendríamos que alterar nada en la programación, entonces el personaje “Cazador” iría detrás de aquel personaje.

Comentarios

Page 26: Juegos en StarLogo TNG Tercera Parte

Juegos en StarLogo TNG - Juan Javier Guampe - 2012 Juegos en StarLogo TNG - Juan Javier Guampe - 2012Página 88 Página 89

Juego 8: Escapar

Este bloque se encuentra en el CAJÓN “Movement” de la pestaña “Factory”. Lo que hace es mover al personaje que tenga asociado este bloque a la posición de inicio (home), es decir las coordenadas “X=0” y “Y=0”, ó en otras palabras, el centro del TERRENO.

Este bloque identifica una variable compartida de tipo numérica (Shared number). Se puede encontrar dentro del CAJÓN “variables” de la pestaña “Factory”. Este tipo de variables puede almacenar números y su contenido está disponible para cualquier personaje dentro del juego. En otras palabras, su contenido es compartido . Solamente existe una copia de esta variable y es posible hacer referencia a ella desde cualquier personaje del juego.

Este bloque se encuentra en el CAJÓN “Other Agents” de la pestaña “Factory”. Se utiliza para hacer desaparecer (kill) al personaje que se identifique con el número ID que se coloque al final del bloque. Dentro del juego se usó para desaparecer a los “Cazadores” (ID’s 1, 2 y 3) una vez que el “Jugador” alcance la zona de color azul.

Este bloque se encuentra en el CAJÓN “Movement” de la pestaña “Factory”. Dentro del juego se utilizó en conjunto con el bloque “Set heading” para que los “Cazadores” pudiesen dirigirse (towards) hacia las coordenadas “X” y “Y” del “Jugador”. Este bloque reporta el ángulo en grados de las coordenadas establecidas con respecto al personaje.

Estos bloques se encuentran en el CAJÓN “Other Agents” de la pestaña “Factory”. Éstos reportan las coordenadas “X” y “Y” de los personajes que tengan el ID asociado en la parte final del bloque. Dentro del ejemplo se usó para saber las coordenadas del “Jugador”, y de esta forma saber su posición para perseguirlo.

Bloques adicionales usados

Trata de hacer las siguientes modificaciones:

- Intenta incluir más personajes dentro del juego

- Trata de perseguir a un personaje diferente

- Descubre lo que sucede cuando se tienen varios personajes de una misma familia y se intenta perseguirlos ¿Funciona?

- Intenta perseguir a un personaje SOLO si cumple una condición, como un color en particular, un tamaño específico, una posición, una altura, etc.

Page 27: Juegos en StarLogo TNG Tercera Parte

Juegos en StarLogo TNG - Juan Javier Guampe - 2012Página 90

Juego 9: Rebotar

Crear un juego en donde se debe mantener un objeto en movimiento, rebotando todo el tiempo, sin que éste toque una zona de color. El Jugador estará representado por una paleta que puede moverse horizontalmente y el objeto será una pelota. Cada vez que el objeto alcance la zona de color se contará como punto y al llegar a 5, el Jugador perderá el juego.

? ProblemaPlan

1. Preparar las condiciones iniciales:- Eliminar las dos tortugas de inicio- Crear el personaje principal y el objeto- Ajustar las propiedades: Posición, etc.2. Asignar las teclas para el movimiento del personaje y la programación para mantener al objeto en movimiento.3. Probar y hacer modificaciones.4. Planteamiento de ideas

Programando

Se crean los dos personajes, el “jugador” y la “Pelota”. Para el jugador se ha utilizado la forma de la letra “I”, que servirá de paleta.

Comentarios

Page 28: Juegos en StarLogo TNG Tercera Parte

Juegos en StarLogo TNG - Juan Javier Guampe - 2012 Juegos en StarLogo TNG - Juan Javier Guampe - 2012Página 90 Página 91

Juego 9: Rebotar

La imagen superior muestra una visión general de la programación en el CANVAS.

En la sección “Setup” se han establecido las condiciones iniciales para cada personaje, como la posición y el tamaño. Para el Jugador se ha fijado además la longitud de la forma (set shape length) para que parezca alargada como una paleta, también se ha girado 90° a la derecha.Para la pelota se ha fijado la dirección hacia donde apunta al inicio del juego, de forma aleatoria entre 0° y 60°. También se han usado los bloques de “set score” y “show score”. StarLogo TNG pone a disposición este recurso, o en otras palabras, esta VARIABLE, sin tener la necesidad de crearla previamente. Esta variable puede almacenar números.

Comentarios

Page 29: Juegos en StarLogo TNG Tercera Parte

Juegos en StarLogo TNG - Juan Javier Guampe - 2012Página 92

Juego 9: Rebotar

El movimiento del “Jugador” se realiza en la misma sección del CANVAS. Solamente es necesario mover al personaje hacia la izquierda y derecha, sin embargo, se han empleado dos bloques “if” (Anidar) para impedir que el “Jugador” llegue hasta los extremos del TERRENO, lo cual tendría efectos extraños en el juego. Las coordenadas “X=-46” y “X= 40” dependen del tamaño, posición del personaje y forma usada, en este caso, la letra “I”

Comentarios

Para la pelota se ha establecido un movimiento hacia adelante (forward) y de llegar a tocar una zona de color negro, volverá a la zona de partida, incrementará el “score en 1” y hará que el su tamaño disminuya en 1. Cuando el “score” llega a 5 el “Jugador” habrá perdido y la “Pelota”, para ese momento ya tendrá un tamaño de “cero”.

Finalmente, se ha colocado un bloque “forever” en la sección “Runtime” del CANVAS con los dos procedimientos ya creados: “Mover” y “Rebotar”, cada uno de ellos en la sección indicada por el bloque “forever”.

Comentarios

Page 30: Juegos en StarLogo TNG Tercera Parte

Juegos en StarLogo TNG - Juan Javier Guampe - 2012 Juegos en StarLogo TNG - Juan Javier Guampe - 2012Página 92 Página 93

Juego 9: Rebotar

En la sección “Collisions” del CANVAS se ha dispuesto que cuando la “Pelota” y el “Jugador” se toquen, la “Pelota” dará un giro al azar entre 140° y 180° a la derecha.

Las imágenes muestran una vista del juego tanto en 2D como en 3D, así como el “score”

Comentarios

Page 31: Juegos en StarLogo TNG Tercera Parte

Juegos en StarLogo TNG - Juan Javier Guampe - 2012Página 94

Juego 9: Rebotar

Estas imágenes muestran las propiedades o rasgos (Traits) que tienen asociados los dos personajes del juego. Desde aquí podemos ver los números ID de cada uno (El “Jugador” tiene como ID=0, mientras que la “Pelota” tiene como ID=1). Aparte del color que comparten (Gris ó número 5), todos los demás rasgos son diferentes.

Desde esta ventana llamada también “Monitor” es posible modificar los rasgos, sin embargo, solo funcionarán una vez y dicho cambio no será guardado.

Comentarios

Page 32: Juegos en StarLogo TNG Tercera Parte

Juegos en StarLogo TNG - Juan Javier Guampe - 2012 Juegos en StarLogo TNG - Juan Javier Guampe - 2012Página 94 Página 95

Juego 9: Rebotar

Este bloque se encuentra en el CAJÓN “Setup and Run” de la pestaña “Factory”. Este bloque reporta el valor del “score” o puntaje que se lleve hasta el momento. Es un bloque que ofrece StarLogo TNG el cual actúa como una variable para almacenar números. Es en pocas palabras, una variable que no tenemos que crear, pero que resulrta muy útil.

Este bloque se encuentra en el CAJÓN “Setup and Run” de la pestaña “Factory”. Se utiliza para iniciar la variable “score” con una número. Dentro del juego se INICIÓ la variable con un valor de cero.

Este bloque se encuentra en el CAJÓN “Setup and Run” de la pestaña “Factory”. Se utiliza para MOSTRAR el contenido de la variable “score” en el SPACELAND, de tal forma que en aquellos juegos en donde sea importante el puntaje, éste se pueda observar mientras se juegue.

Este bloque se encuentra en el CAJÓN “Traits” de la pestaña “Factory”. Se utiliza para establecer la longitud (Length) de las formas usadas en los personajes. En el juego se usó para hacer que la forma escogida (La letra “I”) tuviese una forma alargada parecida a una paleta.

Bloques adicionales usados

Trata de hacer las siguientes modificaciones:

- Intenta que cada vez que la paleta (“Jugador”) toque la “Pelota”, ésta rebote en diferentes direcciones al azar, haciendo más difícil el juego.

- Utiliza la variable “score” para hacer que la velocidad de la “Pelota” se incremente a medidad que el “score” también suba. Este cambió hara mucho más divertido y difícil el juego.

- Para lograr lo anterior puedes usar una combinación de bloques como la siguiente: “forward=score+1”, con esto conseguirás que el desplazamiento de la “Pelota” dependa del score, y a medida que éste vaya siendo más alto, también será más alta la velocidad de la “Pelota”.

- Intenta usar el reloj (Clock), como una variable, de tal forma que puedas también ajustar la velocidad de la “Pelota” a medida que transcurre el tiempo, haciendo más difícil en juego a medida que pasan los segundos.

- Intenta crear dos “Paletas”, una controlada por el computador que siempre se mueva detrás de la coordenada “X” de la “Pelota” y la paleta del “Jugador”. Este juego será como una versión del conocido “Pong”

Page 33: Juegos en StarLogo TNG Tercera Parte

Juegos en StarLogo TNG - Juan Javier Guampe - 2012Página 96

Juego 10A: Rescatar

Crear un juego con tres diferentes tipos de personajes: El “Jugador”, las “Personas” y los “Monstruos”. El “Jugador” deberá RESCATAR a las personas que han sido alcanzadas por uno de los monstruos y llevarlas a un lugar seguro, deberá también evitar a los monstruos, pues desaparecerá cuando esto suceda. El juego termina cuando haya puesto a salvo a todos.

? ProblemaPlan

1. Preparar las condiciones iniciales:- Eliminar las dos tortugas de inicio- Crear los personajes del juego (Breeds)- Ajustar las propiedades: Posición, etc.2. Asignar las teclas para el movimiento del “Jugador” y la programación para las personas y para los monstruos.3. Probar y hacer modificaciones.4. Mejoramiento: Juego 10B

Programando

Esta es una vista general de la programación necesaria en el CANVAS. Los bloques están distribuídos en diferentes secciones, tales como: Jugador, Personas, Mostruo, Setup, Runtime y Collisions.

Comentarios

Page 34: Juegos en StarLogo TNG Tercera Parte

Juegos en StarLogo TNG - Juan Javier Guampe - 2012 Juegos en StarLogo TNG - Juan Javier Guampe - 2012Página 96 Página 97

Juego 10A: Rescatar

Al igual que en todos los juegos explicados hasta el momento, uno de los primeros pasos es crear a los personajes del juego. En este caso en particular se han creado tres personajes de familias (Breeds) diferentes: “Jugador”, “Personas” y “Monstruo”. También se han escogido las formas que se ven en la imagen, sin embargo, es posible utilizar también otras formas (shapes)

Comentarios

Page 35: Juegos en StarLogo TNG Tercera Parte

Juegos en StarLogo TNG - Juan Javier Guampe - 2012Página 98

Juego 10A: Rescatar

En la imagen de la izquierda tenemos la programación correspondiente a la sección “Setup” del CANVAS. Aquí se ha creado a los personajes del juego: De la familia “Jugador” se ha creado solo un personaje, ubicado en la posición superior izquierda, con un tamaño igual a 3 y de un color blanco. Recordemos que el bloque “model skin off” permite que apliquemos colores a formas con máscaras, como en este caso. De la familia “Personas” se ha creado 10 personajes de color azul y de la familia “Monstruo” se ha creado 5 personajes ubicados en la esquina inferior derecha.

La imagen de la derecha es un procedimiento llamado “Ayudar”, el cual se ha creado en la sección “Jugador” del CANVAS. Este procedimiento el movimiento del jugador a través de las teclas de flechas del teclado.

Comentarios

Page 36: Juegos en StarLogo TNG Tercera Parte

Juegos en StarLogo TNG - Juan Javier Guampe - 2012 Juegos en StarLogo TNG - Juan Javier Guampe - 2012Página 98 Página 99

Juego 10A: Rescatar

El procedimiento “Perseguir” está creado en la sección “Monstruo” del CANVAS y se encarga de mover a los cinco personajes “Monstruo” por el terreno con unos movimientos aleatorios. Al momento de tocar una zona de color rojo serán llevados a la posición HOME, con esto se logra que los monstruos no puedan alcanzar a las personas que ya han sido rescatadas.Finalmente, en un bloque “forever” que debe ir en la sección “Runtime” del CANVAS se colocan los tres procedimientos, cada uno en la sección correcta del bloque como se muestra en la imagen.

Comentarios

El procedimiento “Caminar” ha sido creado en la sección “Personas” del CANVAS. Éste permite el movimiento de las personas, así como reaccionar ante los colores azul y rojo. En el primer caso (Azul), si una “Persona” está sobre este color no podrá moverse, pues sobre él actúan dos movimientos que terminan anulándose (forward=1 y back=1). Si las personas llegan a tocar el color rojo serán llevadas a la posición central del terreno o posición HOME

Comentarios

Page 37: Juegos en StarLogo TNG Tercera Parte

Juegos en StarLogo TNG - Juan Javier Guampe - 2012Página 100

Juego 10A: Rescatar

En la sección “Collisions” del CANVAS se incluyen los bloques correspondientes a la colisión entre los personajes y se establece lo que sucederá cuando esto pase. Por ejemplo, las personas cambiarán su color a rojo cuando sean tocadas por el monstruo, el jugador desaparecerá cuando sea tocado por el monstruo y, finalmente, las personas que tengan un color rojo y sean tocadas por el jugador cambiarán su color a amarillo y serán llevadas a una zona segura, asímismo mostrarán el mensaje de “Gracias”

Comentarios

Dentro de los bloques de colisión también es posible incluir bloques “if”, de esta forma no solo podemos establecer lo que sucede cuando los personajes colisionen, es decir, que se toquen dentro del terreno, sino que podemos agregar muchas más condiciones.

En la última imagen se observa como se ha utilizado un bloque “if” dentro del bloque de colisión entre el “Jugador” y las “Personas”. Si se presenta dicha colisión se realizará una segunda prueba, en este caso, saber si las personas son de color rojo, de ser cierta esta condición, las personas serán llevadas a la zona segura y se les cambiará su color a amarillo. Si las personas con las que colisiona el jugador tienen un color azul (ó un color diferente de rojo), entonces no pasará absolutamente nada cuando se presente

la colisión entre estos personajes.

Comentarios

Page 38: Juegos en StarLogo TNG Tercera Parte

Juegos en StarLogo TNG - Juan Javier Guampe - 2012 Juegos en StarLogo TNG - Juan Javier Guampe - 2012Página 100 Página 101

Juego 10A: Rescatar

En el SPACELAND será necesario dibujar la zona segura a la cual serán llevadas las personas de color rojo que toque el jugador. Esta zona debe ser de color azul y se debe dibujar en la parte superior izquierda del terreno. También debe dibujarse un borde de color rojo como se muestra en la imagen que impide que las personas o los monstruos puedan llegar hasta la zona azul.

Comentarios

¡Mejorando el juego con VARIABLES!Es hora de poner en práctica nuevamente el concepto de VARIABLE para mejorar el juego que hemos creado. A continuación se mostrará cómo emplear dos tipos de variables compartidas, una de ellas ya fue usada en el juego 8, se trata del tipo de variable que puede almacenar números y compartir esa información con todos los personajes del juego (shared number). El otro tipo de variable que se utilizará es una variable compartida que puede almacenar LISTAS de números (shared number list). Con ayuda de estas dos variables se busca ampliar las posibilidades del juego. Vamos a modificar un poco el objetivo del juego, haciendo una competencia entre el “Jugador” y el “monstruo”

Page 39: Juegos en StarLogo TNG Tercera Parte

Juegos en StarLogo TNG - Juan Javier Guampe - 2012Página 102

Juego 10B: Rescatar mejorado

Crear un juego con tres diferentes tipos de personajes: El “Jugador”, las “Personas” y el “Monstruo”. Éste último tratará de capturar a las personas, mientras que el “Jugador” intentará salvarlas. Se llevará un puntaje independiente para estos dos personajes y al final del juego deberá indicarse mediante un mensaje quién fue el ganador.

? ProblemaPlan

1. Preparar las condiciones iniciales:- Eliminar las dos tortugas de inicio- Crear los personajes del juego (Breeds)- Ajustar las propiedades de cada personaje: Posición, tamaño, color, etc.- Crear las variables que se necesitan.2. Asignar las teclas para el movimiento del “Jugador” y definir su comportamiento.3. Programar el movimiento del “Monstruo” para que pueda perseguir a las personas.4. Incluir los bloques necesarios para llevar un puntaje independiente.5. Dibujar en el SPACELAND.6. Probar7. Nuevas ideas y problemas propuestos.

Programando

Esta es una visión general de la programación necesaria en el CANVAS, a primera vista no parace haber mucha diferencia con el juego anterior, sin embargo, el hecho de incluir variables permitirá extender las posibilidades del juego y plantear muchas más mejoras. Por ahora, sin embargo, nos centraremos en entender el uso de estas variables.

Comentarios

Page 40: Juegos en StarLogo TNG Tercera Parte

Juegos en StarLogo TNG - Juan Javier Guampe - 2012 Juegos en StarLogo TNG - Juan Javier Guampe - 2012Página 102 Página 103

Juego 10B: Rescatar mejorado

Antes de empezar con la programación necesaria vamos a crear las VARIABLES. Dentro del CAJÓN de variables encontramos varios bloques, cada uno representa un tipo específico de variable. En este juego crearemos tres variables, dos de tipo “shared number” y una de tipo “shared number list”.

Comentarios

Del CAJÓN “Variables” tomamos el bloque “shared number” y lo colocamos en la sección “Jugador” del CANVAS, también debemos cambiar el nombre original reemplazándolo por “PuntosJugador”.

Repetimos nuevamente el mismo proceso, excepto que colocamos el bloque de variable “shared number” en la sección “Monstruo” del CANVAS y cambiamos su nombre a “PuntosMonstruo”Estas dos variables servirán después para almacenar el puntaje del jugador y del monstruo.

Comentarios

Del CAJÓN “Variables” tomamos el bloque “shared number list” y lo colocamos en la sección “Monstruo” del CANVAS, también cambiamos su nombre original y escribimos “personas cerca”. Esta variable servirá para almacenar una lista de números con los ID’s de los personajes que cumplan las condiciones definidas.

Comentarios

Page 41: Juegos en StarLogo TNG Tercera Parte

Juegos en StarLogo TNG - Juan Javier Guampe - 2012Página 104

El hecho de haber creado dos variables para el personaje “Monstruo” hace que dentro de su CAJÓN haya ahora más bloques. Los seis primeros bloques que se ven en la imagen se relacionan con la variables creadas.

Con cada variable se generan tres bloques dentro del cajón del personaje, uno sirve para reportar lo que hay almacenado en la variable, otro sirve para INICIAR la variable con algún valor y el otro bloque sirve para incrementar el contenido de la variable con cualquier otro valor.

Es importante también observar la forma que tienen los bloques de variables, los tres primeros en la imagen representan a las variables de tipo numérico compartidas (shared number), mientras que los tres siguientes bloques representan variables compartidas que pueden almacenar listas de números (shared number list). Recordemos que las variables de color púrpura siempre son de tipo compartido (shared)

Comentarios

Juego 10B: Rescatar mejorado

Page 42: Juegos en StarLogo TNG Tercera Parte

Juegos en StarLogo TNG - Juan Javier Guampe - 2012 Juegos en StarLogo TNG - Juan Javier Guampe - 2012Página 104 Página 105

Como solo creamos una variable para el “Jugador”, solamente disponemos de tres bloques de color púrpura en el CAJÓN del “Jugador”. Como se explicó antes, el primero reporta el contenido que está almacenado en la variable, el segundo se utiliza para INICIAR la variable (Usualmente se hace en la sección “Setup” cuando se están estableciendo las condiciones iniciales del juego), y el tercer bloque se usa para incrementar el valor almacenado en la variable con otro que se coloque al lado derecho del bloque. También es posible disminuir su valor si colocamos valores negativos al lado derecho.

Comentarios

Juego 10B: Rescatar mejorado

Page 43: Juegos en StarLogo TNG Tercera Parte

Juegos en StarLogo TNG - Juan Javier Guampe - 2012Página 106

Esta parte de la programación se realiza, al igual que en los anteriores juegos, en la sección “Setup” del CANVAS.

Los únicos cambios con respecto al juego anterior son los bloques que INICIAN las variables:“set PuntosJugador” y “set PuntosMonstruo”ambos con un valor de cero, y los dos bloques que aparecen después del bloque “setup” identificados con los nombres “Jugador” y “Monstruo”. Estos bloques finales se llaman MONITORES y se utilizan para mostrar el contenido de las variables de tipo compartido en el SPACELAND, más exactamente el la ventana RUNTIME.

El bloque “monitor” se encuentra en el CAJÓN “Setup and Run”

Comentarios

Juego 10B: Rescatar mejorado

Page 44: Juegos en StarLogo TNG Tercera Parte

Juegos en StarLogo TNG - Juan Javier Guampe - 2012 Juegos en StarLogo TNG - Juan Javier Guampe - 2012Página 106 Página 107

El procedimiento “Ayudar” no tiene ningún cambio con respecto a la versión inicial del juego.

La única diferencia en esta sección es la presencia de la variable numérica compartida (shared number) llamada “PuntosJugador” que creamos previamente.

Comentarios

Juego 10B: Rescatar mejorado

Page 45: Juegos en StarLogo TNG Tercera Parte

Juegos en StarLogo TNG - Juan Javier Guampe - 2012Página 108

Este es el procedimiento “Caminar” asociado al personaje “Personas”. En comparación a la primera versión del juego, este procedimiento tiene ahora más bloques “if”. Los cuatro primeros bloques “if” se encargan de impedir que las “Personas” puedan entrar en las zonas de colores, las cuales representan las zonas en las que tanto el “Jugador”, como el “Monstruo” van a mantener a las personas que han capturado. Recordemos que el objetivo del juego es que el “Jugador” pueda ganarle al “Monstruo”, poniendo a salvo a la mayor cantidad de personas posible. El “Monstruo” por su parte intentará capturar a la mayor cantidad de personas y las encerrará en su zona.

Comentarios

Juego 10B: Rescatar mejorado

Page 46: Juegos en StarLogo TNG Tercera Parte

Juegos en StarLogo TNG - Juan Javier Guampe - 2012 Juegos en StarLogo TNG - Juan Javier Guampe - 2012Página 108 Página 109

Estas imágenes permiten ver con mejor detalle la imagen de la página anterior.

El bloque “if” final tiene como objetivo mostrar tres mensajes: “Es un empate”, “El jugador ha ganado” ó “El Monstruo ha ganado”, dependiendo del valor almacenado en las variables “PuntosJugador” y “PuntosMonstruo”. Para este fin se utiliza el bloque de comparación “igual” y el bloque de comparación “mayor que”. Esta sección cuenta con tres bloques “if” que están anidados para conseguir lo que se busca. El primer bloque “if” solo ejecutará las acciones internas si el número de “Personas” de color azul es igual a “cero”. El segundo bloque es de tipo “if-else” y realizará dos acciones dependiendo de la condición. Si las dos variables son iguales, se mostrará el mensaje de empate, si las dos variables son diferentes entonces se pasará a otro bloque “if-else” que determinará cual de las dos es mayor y mostrará el mensaje correspondiente.

Comentarios

Juego 10B: Rescatar mejorado

Page 47: Juegos en StarLogo TNG Tercera Parte

Juegos en StarLogo TNG - Juan Javier Guampe - 2012Página 110

El procedimiento “Perseguir” ha sido la parte que más cambios ha tenido con respecto a la versión anterior del juego. El cambio más importante que se ha hecho es haberle dado un poco más de “inteligencia” al personaje “Monstruo”, haciendo que pueda conocer la ubicación exacta de las “Personas” que están en un radio de hasta 10 pasos a la redonda (Recordemos que el ancho y largo total del terreno son 100 pasos), con esta información el “Monstruo” puede perseguir y capturar a las personas de una forma eficiente. Cuando no existen personas en dicho rango de 10 pasos el “Monstruo” camina sin un rumbo fijo, en otras palabras, deambula por el terreno en busca de personas. Este nivel de “inteligencia” lo consiguió gracias a la variable “personas cerca” creada al principio y a otros bloques que se explicarán en la siguiente página.

Comentarios

Juego 10B: Rescatar mejorado

Page 48: Juegos en StarLogo TNG Tercera Parte

Juegos en StarLogo TNG - Juan Javier Guampe - 2012 Juegos en StarLogo TNG - Juan Javier Guampe - 2012Página 110 Página 111

El procedimiento “Perseguir” empieza con el bloque de INICIO de la variable “personas cerca” (Set personas cerca), haciendo que almacene una lista de números ID de aquellos personajes que estén en un radio de 10 pasos y que además sean de colo azul. Esto se logra con el bloque “smell list with”, el cual reporta los ID’s de los personajes que cumplan las condiciones establecidas (“radius” y “condition”)

El siguiente bloque “if-else” se encarga de la persecución. La condición necesaria para esto es que en la variable “personas cerca” haya algún número ID (Length>0), ó en otras palabras, que se haya detectado a una persona y que su ID ya esté almacenada en la variable que guarda la lista de ID’s. Si se da esta condición entonces (then) el rumbo del “Monstruo” se fija HACIA (towards) las coordenadas “X” y “Y” del primer (first) elemento que esté en la lista de ID’s almacenada en la variable “personas cerca”. Es posible que el monstruo detecte a varias personas y que sus ID’s se almacenen en la variable, sin embargo, solo va a ir detrás de la persona que esté encabezando la lista. De no darse la condición (else), el “Monstruo” caminará sin un rumbo fijo. Los últimos bloques “if” se encargan de impedir el paso del “Monstruo” a las zonas en donde son llevadas las personas,

tanto las rescatadas por el “Jugador”, como las capturadas por él.

Comentarios

El bloque “forever” no tiene ningún cambio con respecto a la versión anterior, sin embargo, en el SPACELAND, específicamente en la ventana “Runtime” aparacen ahora, además de los conocidos bloques “setup” y “forever”, los dos MONITORES que muestran el puntaje de los personajes “Jugador” y “Monstruo”.

Los MONITORES se usan para mostrar lo que tienen almacenado las variables compartidas.

Comentarios

Juego 10B: Rescatar mejorado

Page 49: Juegos en StarLogo TNG Tercera Parte

Juegos en StarLogo TNG - Juan Javier Guampe - 2012Página 112

En la sección “Collisions” del CANVAS se han incluido unos bloque más. En el bloque de colisión entre el “Jugador” y las “Personas” se ha establecido que la variable “PuntosJugador” se incrementará en 1 (Inc Puntos Jugador 1), por su parte las “Personas” cambiarán su color a amarillo, darán las gracias y serán llevadas a una posición al azar, aunque dentro de la pequeña zona de color azul que se encuentra dibujada en la esquina superior izquierda.

La colisión entre el “Monstruo” y las personas también producirá un efecto similar, aunque a favor del “Monstruo”, quien verá incrementado en 1 los puntos (Variable “PuntosMonstruo” +1), las personas serán coloreadas de rojo, expresarán el mensaje “He sido capturado” y serán colocadas al azar dentro de la región de color amarilla.

La colisión entre el “Jugador” y el “Monstruo” hara desaparecer al primero.

Comentarios

Juego 10B: Rescatar mejorado

Page 50: Juegos en StarLogo TNG Tercera Parte

Juegos en StarLogo TNG - Juan Javier Guampe - 2012 Juegos en StarLogo TNG - Juan Javier Guampe - 2012Página 112 Página 113

Para lograr que las personas “capturadas” por el “Monstruo”, ó “salvadas” por el “Jugador” sean llevadas a una posición al azar, aunque dentro de las zonas establecidas para cada personaje, se utiliza el bloque “set xy” acompañado de una operación (Suma o resta) que hace uso del bloque “random”. Para entender mucho mejor este proceso, veamos el resultado de esa operación con detalle.

Cuando el “Monstruo” toca a una persona, ésta es llevada a la siguiente posición:

- Coordenada “X” = random 32+ 18. Esta operación puede estar entre 18 y 50, dependiendo del número al azar que genere el computador).- Coordenada “Y” = random 13 - 50. El resultado de esta operación está dentro del rango -50 y -37, dependiendo del número al azar generado por el computador.

No hay que olvidar que en el SPACELAND se debe dibujar las dos zonas mostradas en la imagen, una de color azul con un borde rojo (Esquina superior izquierda) y otra de color amarilla con borde negro (Esquina inferior derecha). Estas zonas se pueden crear fácilmente con la herramienta “Rectangle”

Comentarios

Juego 10B: Rescatar mejorado

Page 51: Juegos en StarLogo TNG Tercera Parte

Juegos en StarLogo TNG - Juan Javier Guampe - 2012Página 114

Este bloque se encuentra en el CAJÓN “Setup and Run” de la pestaña “Factory”. Este bloque permite mostrar el contenido de las variables compartidas (shared) dentro de la ventana “Runtime” del SPACELAND.

Este bloque representa una variable de tipo lista numérica compartida (shared number list). Esta imagen muestra una variable que ya tiene un nombre personalizado y que ha sido creada en la sección del personaje con el nombre “Monstruo”. Este tipo de variables puede almacenar listas de números.

Este bloque representa una variable numérica compartida (shared number), a la cual se le ha cambiado el nombre y que pertenece a un personaje con el nombre de “Jugador”. Este tipo de variables permite almacenar números.

Este bloque permite que la variable sea INICIALIZADA. Recordemos que las variables deben ser cargadas con un valor en algún punto del programa, ya sea al inicio o durante la ejecución del juego.

Este bloque se encuentra en el CAJÓN “Other Agents” de la pestaña “Factory”. Su función es la de REPORTAR los números de identificación ID de los personajes que estén dentro del radio (radius) asignado y que cumplan con la condición (condition) establecida. En el ejemplo se utilizó para crear una lista de los números ID de aquellos “Personas” de color azul que se encontrarán en un radio de 10 pasos con respecto al “Monstruo”

Este bloque RECUPERA la longitud de las listas que están en las variables de tipo “shared number list”. Se encuentra dentro del CAJÓN “List” de la pestaña “Factory”. En el ejemplo se utilizó para saber si en la variable “personas cerca” había almacenado al menos un número ID.

Este bloque recupera el PRIMER (first) elemento de una lista de números que haya en una variable de tipo “shared number list”. Se encuentra dentro del CAJÓN “List” de la pestaña “Factory”. En el ejemplo se utilizó para identificar a la primera “Persona” de color azul detectada en el radio de 10 pasos que estaba en la lista, permitiendo con esto que el “Monstruo” pudiese ir detrás de ella.

Este bloque representa una forma fácil de INCREMENTAR el valor de una variable numérica compartida (shared number). también sirve para disminuir el valor de la variable, si se coloca en la parte derecha un número negativo, como -1 ó -2.

Este bloque se encuentra en el CAJÓN correspondiente al personaje, en este ejemplo, al personaje “Personas”. Permite CONTAR el número de personajes que cumplan con la condición asociada al final del bloque. En el juego se utilizó para saber si el número total de “Personas” de color azul era “cero”, es decir, que ya no existían personas para capturar o para salvar. En este momento se debía emitir un mensaje con el resultado final para determinar al ganador del juego.

Bloques adicionales usados

Juego 10B: Rescatar mejorado

Page 52: Juegos en StarLogo TNG Tercera Parte

Juegos en StarLogo TNG - Juan Javier Guampe - 2012 Juegos en StarLogo TNG - Juan Javier Guampe - 2012Página 114 Página 115

Juego 10B: Rescatar mejorado

PROBLEMAS PROPUESTOS

- Intenta poner en práctica más variables compartidas para aumentar las posibilidades del juego y así hacerlo más divertido y difícil.

- Crea más personajes y asigna diferentes roles dentro del juego.

- Incluye también la opción de reloj (Clock) como una variable que pueda ser usada para latoma de decisiones.

Page 53: Juegos en StarLogo TNG Tercera Parte

Juegos en StarLogo TNG - Juan Javier Guampe - 2012Página 116

CAPÍTULO IV

Juegos segunda parte

Uso de variables

Niveles.

Cap 1

Page 54: Juegos en StarLogo TNG Tercera Parte

Juegos en StarLogo TNG - Juan Javier Guampe - 2012 Juegos en StarLogo TNG - Juan Javier Guampe - 2012Página 116 Página 117