Transcript
Page 1: Juegos en Starlogo TNG - Cuarta parte del libro

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

CAPÍTULO IV

Juegos segunda parte

Uso de variables: Variables numéricas, booleana, de listas, de texto, variables compartidas y variables de agentes.

Nuevos bloques de programación

Ideas creativas

Problemas planteados

Cap 4

Page 2: Juegos en Starlogo TNG - Cuarta parte del libro

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

Juego 11: Congelados

Crear un juego de congelados por tiempo en el cual haya un tipo de personajes (Monstruos) que persigan y congelen a otros (Personas). Un tercer personaje (El Jugador) tendrá la habilidad de descongelar a las personas para que puedan moverse nuevamente. Después de 60 segundos se deberá indicar quién ha ganado el juego, con base en el número de personas congeladas

? 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.2. Programar a los personajes:- Crear las variables que se necesitan.- Asignar las teclas para el movimiento del “Jugador” y programar el movimiento de los “Monstruos” para que pueda perseguir a las personas y congelarlas.- Programar el comportamiento de las personas y de todas las colisiones.3. Probar4. Nuevas ideas y problemas propuestos.

Programando

IDEAS

- Podemos tomar algunos elementos del juego anterior, por ejemplo, la persecución que hacen los “Monstruos, el movimiento del “Jugador” y el movimiento de las “Personas”

- Deberemos usar variables de tipo “Boolean” para asignar un estado a cada una de las “Personas” (CONGELADAS ó DESCONGELADAS)

- Para la ejecución del juego por 60 segundos podemos usar un bloque RUN que ofrece la opción de tiempo, es similar al bloque “Forever” aunque limitado al tiempo que se establezca. Después de estos 60 segundos deberemos contar a las personas que están congeladas y con base en esta información determinar quién ganó el juego.

Page 3: Juegos en Starlogo TNG - Cuarta parte del libro

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

Juego 11: Congelados

Para este juego se crearán tres grupos de familias (Breeds): El “Jugador”, las “Personas” y los “Monstruos” que hemos llamado aquí “Congelador”. Esta parte es muy similar al juego anterior. La imagen inferior muestra una vista general de la programación final en el CANVAS, aquí se puede ver claramente que hay tres procedimientos, uno para cada uno de los personajes (Jugador, Personas y Congelador), también una configuración inicial en la sección “Setup”, los bloques de colisión en la sección “Collisions” y solo unos pocos bloques en la sección “Runtime”.

Comentarios

Page 4: Juegos en Starlogo TNG - Cuarta parte del libro

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

Juego 11: Congelados

Esta parte se realiza en la sección “Setup” del CANVAS.

Aquí se han creado tres grupos de personajes:1 Jugador10 Personas3 CongeladoresTanto el “Jugador” como las personas han sido coloreadas al inicio, para lo cual ha sido necesario remover su máscara (Model skin off).

En el bloque c o r r e s p o n d i e n t e a la creación de las “Personas” se ha inciado una variable llamada “congelado?” con una valor inicial falso (False). Esta variable ha sido creada previamente en la sección de las “Personas” y es una variable de tipo AGENT BOOLEAN que permitirá saber si una persona ha sido o no congelada por los monstruos.

Comentarios

Page 5: Juegos en Starlogo TNG - Cuarta parte del libro

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

Juego 11: Congelados

En la página anterior se muestra también una imagen con una pequeña programación realizada en la sección “Setup” del CANVAS. Aquí se ha utilizado un bloque “Run Once” y los bloques de texto “Say” y “abc” para desplegar un mensaje inicial con las instrucciones del juego. El bloque “Run Once” realiza las acciones solo UNA VEZ, a diferencia del bloque “Forever” que las realiza indefinidamente. Al bloque “Run Once” se ha cambiado su nombre por “Instrucciones”

La imagen de la izquierda muestra un procedimiento llamado “Ayudar” que permite el control del “Jugador” con las teclas de flechas del teclado, de forma similar a como se ha hecho en los anteriores juegos.

Comentarios

La imagen en la siguiente página enseña el procedimiento “perseguir” realizado en la sección “Congelador” del CANVAS. Este procedimiento es similar al que se usó en el juego anterior (Rescatar). Antes de realizarlo es necesario crear la variable de tipo “Shared number list” con el nombre de “PersonasCerca”. Esta variable se encargará de almacenar una lista con los números de identificación de las “Personas” (ID’s) que detecte el “Congelador” a medida que camina por el “Spaceland”. Esta detección es posible gracias al bloque “Smell list with” que reporta los números de identificación de los agentes que se encuentren en el radio establecido (Para este caso 10 pasos) y que cumplan con la condición (En este caso las personas que tengan la variable “Congelado?” en falso). Cuando la variable tenga al menos un valor, ó, en otras palabras, la longitud de la lista de números sea mayor a cero (Length>0), el “Congelador” irá detrás de aquella primera (First) persona detectada. De lo contrario, es decir, cuando no se haya detectado a nadie todavía y no haya ningún número en la variable, el “Congelador” deambulará por el SPACELAND con movimientos a la derecha, izquierda y hacia adelante.

Comentarios

Page 6: Juegos en Starlogo TNG - Cuarta parte del libro

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

Juego 11: Congelados

La imagen que se muestra en las siguientes dos páginas, si bien es un poco grande, es bastante simple de entender, corresponde al procedimiento llamado “Caminar” que se realiza en la sección “Personas” del CANVAS. Este procedimiento tiene dos funciones, por una lado se encarga de hacer mover a las “Personas” de una forma aleatoria o al azar, con movimientos hacia adelante, derecha e izquierda, siempre y cuando las personas tengan la variable “Congelado?” en un valor “False” ó falso. Debemos recordar que esta variable se debe crear antes y debe ser de tipo “Agent Boolean”. Al inicio del juego se ha establecido que esta variable sea “False” ó falsa para TODAS las “Personas”. Durante la ejecución del juego el valor de la variable puede cambiar. Cada una de las diez “Personas” tiene SU PROPIA COPIA DE LA VARIABLE y por tanto PERTENECE a cada una de ellas, de tal forma que se puede saber si una persona está o no congelada.

Por otro lado, el procedimiento se encarga de desplegar un mensaje cuando el reloj alcanza los 60 segundos, con el resultado final. Para lograr esto se deben contar a las personas congeladas (Color rojo) y las que no están congeladas (Color azul). Cuando estos números son iguales se mostrará un mensaje de “Empate”, cuando haya más personas de color azul que personas de color rojo, se mostrará el mensaje “El Jugador ha ganado” y cuando no se de ninguna de las dos opciones anteriores, se mostrará en mensaje “El congelador ha ganado”. Esta estructura se realiza anidando varios bloques IF. El primero es un bloque IF sencillo que verifica si el reloj llegó a 60, el segundo es un bloque IF-ELSE que descarta el empate y el último bloque IF-ELSE permite saber quién ha sido el ganador.

Comentarios

Page 7: Juegos en Starlogo TNG - Cuarta parte del libro

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

Juego 11: Congelados

El bloque “Jugar” en la siguiente página es un bloque “RUN” con la opción de TIEMPO, al cual se ha cambiado su nombre. Este bloque es similar al bloque “Forever” aunque solo ejecuta las acciones por el tiempo establecido en la parte “Seconds”. Este bloque involucra los tres procedimientos descritos anteriormente.La otra imagen muestra los tres botones que controlan el juego: El bloque “Comenzar” que es el mismo “Setup”, el bloque “Instrucciones” que es un bloque “Run Once” y el bloque “Jugar”.

La imagen en la siguiente página muestra las colisiones entre los personajes. Si el “Congelador” toca al “Jugador”, éste muere. Cuando el “Congelador” toca a las “Personas” cambian su color a rojo, así como su variable “Congelado?” a verdadero (True),se emite un sonido y muestran el mensaje “Ayuda”. Cuando el “Jugador” toca a las “personas” de color rojo, éstas se vuelve de color azul, cambian su variable a “False”, se emite un sonido y se muestra el mensaje “Gracias”.

Comentarios

Page 8: Juegos en Starlogo TNG - Cuarta parte del libro

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

Juego 11: Congelados

Page 9: Juegos en Starlogo TNG - Cuarta parte del libro

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

Juego 11: Congelados

Este bloque se encuentra en el CAJÓN “Sounds” de la pestaña “Factory”. Este bloque permite reproducir el sonido que se coloque a su derecha. Dentro de StarLogo TNG existen 11 efectos de sonido sencillos que se pueden utiizar en los juegos.

Estos bloques son dos de los once efectos de sonido disponibles en StarLogoTNG. Se encuentran en el cajón “Sounds” de la pestaña “Factory”

Bloques adicionales usados

La imagen final muestra una vista del SPACELAND con los tres personajes del juego: 1 “Jugador”, 10 “Personas” y 3 “Congeladores”, cada uno interactuando y comportándose de acuerdo con la programación realizada.

Comentarios

Page 10: Juegos en Starlogo TNG - Cuarta parte del libro

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

Juego 11: Congelados

PROBLEMAS PROPUESTOS- Intenta modificar el juego haciendo que el jugador sea inmune a los congeladores con ayuda de una tecla, en otras palabras, que el jugador pueda protegerse del toque mortal de los congeladores si se presiona una tecla del teclado.Esto sería algo así como un truco de invencibilidad.

- Piensa en una forma de TERMINAR el juego sin utilizar el bloque “RUN” con tiempo de 60 segundos, sino un bloque “Forever”

- Coloca un score o puntaje durante el juego para saber cuántas personas están siendo congeladas.

Page 11: Juegos en Starlogo TNG - Cuarta parte del libro

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

Juego 12: Jugador vs Computador

Crear un juego en donde el personaje principal compita contra el Computador. El objetivo será disparar a un blanco en movimiento y el primero que alcance este blanco será el ganador, una vez que esto ocurra los dos personajes (“Jugador” y “Computador”) ya no podrán disparar sus balas y se deberá indicar 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.2. Programar a los personajes:- Crear una variable de texto (Shared text)- Asignar las teclas para el movimiento del “Jugador”, programar el movimiento del “Computador” y el movimiento del “Objetivo” ó blanco.- Programar las colisiones3. Probar4. Nuevas ideas y problemas propuestos.

Programando

IDEAS

- Deberemos ubicar al “Jugador” en la parte inferior del SPACELAND, al “Computador” en la parte superior y al “Objetivo” en la mitad. Tanto el “Jugador” como el “Computador” podrán moverse solo de forma horizontal, es decir, sobre el eje “X”.

- Deberemos crear “Balas” independientes para el “Jugador” y para el “Computador”, de esta forma podemos saber quién ha dado en el blanco.

- El número total de “Breeds” o personajes en el juego será de cinco: Jugador=1 Computador=1 Objetivo=1 BalasComputador=1 BalasJugador=1

Page 12: Juegos en Starlogo TNG - Cuarta parte del libro

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

Juego 12: Jugador vs Computador

Se han creado los cinco personajes descritos en la página anterior y se han escogido las formas mostradas en la imagen.La imagen inferior muestra una visión general de toda la programación en el CANVAS. Se han creado procedimientos para cada uno de los personajes e igualmente se ha usado una variable compartida colocada en la región “Everyone”, también se han colocado unos bloques más en la sección de colisiones.

Comentarios

Page 13: Juegos en Starlogo TNG - Cuarta parte del libro

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

Juego 12: Jugador vs Computador

En la región “Setup” se ha creado la configuración inicial, es decir, la disposición de los tres personajes en el SPACELAND. También se ha creado una variable llamada “Ganador” de tipo “Shared text” en la región “Everyone” del CANVAS, la cual permitirá almacenar algunos mensajes. Al inicio del Juego el contenido de esta variable será el texto “El ganador es...”

FInalmente se ha reemplazado el nombre del bloque “Setup” por “Comenzar” para que tenga más sentido a la hora de jugar.

Comentarios

Page 14: Juegos en Starlogo TNG - Cuarta parte del libro

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

Juego 12: Jugador vs Computador

1

23

4

Page 15: Juegos en Starlogo TNG - Cuarta parte del libro

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

Juego 12: Jugador vs Computador

Este es el procedimiento “mueveydispara” realizado en la región “Jugador” del CANVAS. Se ha usado el bloque “Set X” para ajustar su posición en el eje “X”, incrementando y disminuyendo su valor cada vez que se presionan las flechas de izquierda y derecha.También se ha configurado la barra espaciadora para que lance bolas, siempre y cuando el personaje con el número de identificación= 1 (ID=1) esté vivo. Este personaje corresponde al “Objetivo” que se encuentra ubicado en la mitad del SPACELAND.

Comentarios

Este procedimiento llamado “mueveobjetivo” se realiza en la región “Objetivo” del CANVAS. Su función es la de hacer mover a este personaje de izquierda a derecha y visceversa a una velocidad al azar entre 1 y 10 pasos, lo que hace un poco difícil predecir su posición.

El desplazamiento de este personaje también se ha limitado a una región específica del CANVAS, delimitada por el rango entre X>-30 y X<30, lo cual hace que no pueda llegar a los extremos del SPACELAND.

Comentarios

Este procedimiento llamado “muevebala” realizado en la región “BalasJugador” del CANVAS, se encarga del desplazamiento de las balas del jugador una vez que han sido lanzadas con la barra espaciadora. Las balas se desplazarán hacia adelante (Forward) a una velocidad de 10 pasos y una vez alcancen la coordenada Y=15 desaparecerán pues en ese punto ya no hay posibilidad de dar en el blanco que se encuentra sobre la coordenada Y=0

Comentarios

Este procedimiento es muy similar al anterior, está realizado en la región “BalasComputador” y tiene por nombre “MuevebalasPC”. Esta parte de la programación se encarga del desplazamiento de las balas que lanza el personaje “Computador”. El movimiento de estas balas será hacia adelante con respecto a la posición desde la cual se disparen y ya que el “Computador” está orientado hacia abajo las balas se desplazarán de arriba hacia abajo. Las balas desaparecerán cuando alcance una coordenada “Y” menor a -15

Comentarios

1 2

43

Page 16: Juegos en Starlogo TNG - Cuarta parte del libro

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

Juego 12: Jugador vs Computador

Este procedimiento llamado “SeguiryDisparar” se realiza en la región “Computador” del CANVAS y tiene dos funciones: La primera es hacer mover al personaje “Computador” de forma horizontal siguiendo la coordenada “X” del “Objetivo”. Este último personaje (“Objetivo”) está identificado con el número 1 (ID=1).

La segunda función es la de disparar las “BalasComputador” de forma automática, es decir, sin la necesidad de presionar ninguna tecla del teclado. Sin embargo, para que pueda disparar estas balas se debe cumplir la condición establecida en la parte “test” del bloque IF. Esta condición es que el personaje “Objetivo” se encuentre vivo (alive? ID=1). Cuando este personaje haya desaparecido, bien sea a causa de las balas del “Jugador” o del “Computador”, ya no tiene sentido seguir disparando más balas.

Como los procedimientos son realizados a una gran velocidad en StarLogo TNG, es necesario pausar un poco la ejecución de estas acciones. Esta es la función del bloque “YIELD”, en este procedimiento se han usado dos de ellos para pausar mucho más las acciones. Finalmente se ha dispuesto que sea este personaje quien

muestre los mensajes que tiene la variable de texto “Ganador”.

Comentarios

Page 17: Juegos en Starlogo TNG - Cuarta parte del libro

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

Juego 12: Jugador vs Computador

El bloque “Jugar” corresponde a un bloque “Forever” colocado en la región “Runtime” del CANVAS. Dentro de cada sección se han colocado los procedimientos anteriormente descritos. En la imagen inferior se muestran las colisiones entre las balas del jugador y el objetivo, así como entre las balas del computador y el objetivo. Se ha establecido que en ambos casos desaparezca el “Objetivo”, una vez que haya sido alcanzado por cualquiera de las balas. También se han colocado dos bloques de sonido y ajustado la variable de texto con las palabras “EL JUGADOR” y “EL COMPUTADOR”

Comentarios

Page 18: Juegos en Starlogo TNG - Cuarta parte del libro

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

Juego 12: Jugador vs Computador

En el SPACELAND no es necesario dibujar nada. Aquí se puede apreciar a todos los personajes del juego: El “Computador” ubicado en la parte superior, el “Objetivo” en la parte central y el “Jugador” en la parte inferior del terreno. Las balas, tanto del “Computador”, como del “Jugador”, si bien son dos personajes diferentes, se ven exactamente igual, pues se ha seleccionado la misma forma redonda en ambos casos.

Comentarios

Page 19: Juegos en Starlogo TNG - Cuarta parte del libro

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

Juego 12: Jugador vs Computador

Este bloque se encuentra en el CAJÓN “Logic” de la pestaña “Factory”. Este bloque permite pausar la ejecución de las acciones por un ciclo. Cuando varias acciones se encuentran dentro de un bloque “Forever”, se puede incluir un bloque “YIELD” el cual hará que todo vaya más lento. En el ejemplo se utilizó para hacer que el personaje “Computador” persiga al “Objetivo” y dispare las balas más lentamente.

Este bloque se encuentra en el CAJÓN “Other Agents” de la pestaña “Factory”. Si el personaje identificado con el número ID asociado en la parte derecha del bloque se encuentra vivo dentro del juego, entonces se reporta un valor de verdadero (True). En el ejemplo se usó en varias ocasiones para mover al “Jugador” y al “Computador”, así como para disparar las balas, siempre y cuando el “Objetivo” estuviese VIVO.

Este bloque se encuentra en el CAJÓN “Variables” de la pestaña “Factory”. Es un tipo de variable compartida de texto. En el ejemplo se usó para almacenar algunos mensajes y mostrarlos al inicio del juego y al final, cuando el “Objetivo” ha sido alcanzado por alguna bala.

Bloques adicionales usados

PROBLEMAS PROPUESTOS

- Diferencia las balas del “Computador” y las del “Jugador” con colores.

- Modifica el procedimiento que controla el movimiento del “Objetivo” para lograr un desplazamiento de este personaje mucho más difícil de predecir y por ende más difícil de ser alcanzado por las balas.

- Intenta crear o generar a otro “Objetivo” cuando éste sea alcanzado por una bala y así extender la duración del juego. Igualmente intenta incluir un puntaje o SCORE para los dos personajes que disparan, de esta forma se podrá saber cómo va el desempeño de cada uno y después de cierto tiempo, poder declarar a un ganador basado en el número de veces que atinó y pudo darle al “Objetivo”

Page 20: Juegos en Starlogo TNG - Cuarta parte del libro

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

Juego 13: Juego de mesa con dados

Emular un juego de mesa en el cual dos jugadores lanzan los dados y van avanzando alrededor del tablero. Gana quien complete una vuelta. Deben existir zonas con premios y castigos, como por ejemplo: Ceder el turno, lanzar dados otra vez, volver a empezar, entre otros. Con mensajes se debe indicar el número de los dados y los premios y castigos que los jugadores deben respetar.

? 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.2. Programar a los personajes:- Crear las variables necesarias- Emular el lanzamiento de los dados- Controlar el desplazamiento de los dos jugadores alrededor del tablero- Programar los premios y castigos3. Dibujar en el SPACELAND4. Probar5. Nuevas ideas y problemas propuestos.

Programando

IDEAS

- Deberemos ubicar a los dos jugadores en la esquina inferior izquierda al inicio del juego. Una de los primeros problemas a resolver será la emulación de los dados, la cual se puede conseguir con ayuda del bloque “RANDOM” (Al azar) y una variable compartida de tipo numérica.

- Un segundo problema a resolver será el desplazamiento de los dos jugadores alrededor del SPACELAND. Cuando éstos lleguen a las esquinas deben girar para continuar con su movimiento alrededor del tablero, teniendo en cuenta el número generado al azar (El lance de los dados).

- Cuando se dibuje las zonas en el SPACELAND éstas deberán tener un ancho de 1 paso, ya que el número al azar (Los dados) puede ser entre 1 y 12. Aquí se deberá ser cuidadoso a la hora de usar las herramientas de dibujo.

Page 21: Juegos en Starlogo TNG - Cuarta parte del libro

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

Juego 13: Juego de mesa con dados

Se han creado solo dos familias de personajes: “Jugador1” y “Jugador2” y se han escogido las formas que muestra la figura. En la imagen inferior se muestra una visión anticipada de toda la programación en el CANVAS. Allí se puede ver que existen procedimientos para cada uno de los dos jugadores, así como un procedimiento general ubicado en la región “Everyone”. También se observa que no hay bloques en la sección de colisiones.

Comentarios

Page 22: Juegos en Starlogo TNG - Cuarta parte del libro

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

Juego 13: Juego de mesa con dados

En la región “Setup” se han creado y ubicado a los dos personajes del juego, también se ha iniciado una variable numérica compartida (“Azar”) con el valor de cero. Recordemos que debemos crear esta variable antes, en la sección “Everyone”.En la parte inferior se ve un procedimiento llamado “Recorrer” realizado en la sección “Everyone”. Para poder explicarlo mejor se ha dividido en partes que se muestran en la siguiente página.

Comentarios

Page 23: Juegos en Starlogo TNG - Cuarta parte del libro

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

Juego 13: Juego de mesa con dados

Este procedimiento será usado por los dos jugadores y por eso se crea en esta región. La idea principal es mover a los personajes con base en el número generado al azar, aunque teniendo en cuenta la posición en donde están para que puedan girar en las esquinas.

Antes de mover al personaje tenemos que preguntarnos si su coordenada (“Y” ó “X”), sumada al número al azar (Dados) resulta en un valor superior a 50, el cual es el límite del SPACELAND. De ser verdadera esta pregunta, entonces el jugador deberá dividir su recorrido en dos partes, la primera hasta alcanzar el borde y la segunda parte después un giro de 90°.

Page 24: Juegos en Starlogo TNG - Cuarta parte del libro

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

Juego 13: Juego de mesa con dados

Otro elemento a tener en cuenta en el procedimiento anterior es la dirección (Heading)que tienen los jugadores, pues esta información permite conocer sobre cuál de los lados se mueve el jugador y así tomar la decisión de girar o no, dependeindo del valor generado al azar (Los dados).

En la región del “Jugador1” se ha creado el p r o c e d i m i e n t o “Zonas1” que controla los premios y castigos a medida que el jugador va recorriendo el tablero. P o s t e r i o r m e n t e en el SPACELAND deberemos dibujar zonas con estos mismos colores.

Comentarios

Page 25: Juegos en Starlogo TNG - Cuarta parte del libro

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

Juego 13: Juego de mesa con dados

En la región del “Jugador2” se ha creado un p r o c e d i m i e n t o llamado “Zonas2” que básicamente es igual al del personaje “Jugador1”. Se han utilizado los mismos colores y los mismos premios y castigos para que los dos jugadores afronten las mismas reglas del juego.

Comentarios

Page 26: Juegos en Starlogo TNG - Cuarta parte del libro

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

Juego 13: Juego de mesa con dados

Esta parte de la programación se ha realizado en la sección “Runtime” del CANVAS. Se trata de dos bloques RUN ONCE a los cuales se les ha cambiado su nombre por “LANZA JUGADOR1” y “LANZA JUGADOR2”. Dentro de ellos se han colocado los procedimientos correspondientes a cada jugador (“Recorrer”, “Zonas1” y “Zonas2”), así como la visualización de la variable “Azar” en un mensaje de texto. Cada vez que se presiona cualquiera de estos dos botones RUN ONCE en la ventana RUNTIME del SPACELAND, la variable “Azar” es ocupada por un número al azar entre 1 y 12 (Random 12). Para hacer mover a cada jugador solo es necesario presionar el botón RUN ONCE correspondiente, el cual ejecutára las acciones UNA SOLA VEZ. Esta es una forma de emular el lanzamiento de los dados de un juego de mesa tradicional.

Las instrucciones que aparecen en la siguiente página también se han colocado en un bloque RUN ONCE y se ejecutan una sola vez cuando se presiona el botón, mostrando un mensaje de texto. El la ventana RUNTIME se pueden ver los cuatro botones que controlan

el juego.

Comentarios

Page 27: Juegos en Starlogo TNG - Cuarta parte del libro

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

Juego 13: Juego de mesa con dados

Page 28: Juegos en Starlogo TNG - Cuarta parte del libro

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

Juego 13: Juego de mesa con dados

Finalmente en el SPACELAND hay que dibujar zonas de colores. Estas zonas se deben dibujar alrededor del terreno y representan los premios y castigos que deben afrontar los dos jugadores. En este ejemplo se han dibujado líneas de colores con un ancho de 1 paso, con ayuda de la herramienta rectángulo y de la vista en cuadrícula que ofrece “Edit terrain”. Las líneas han sido ajustadas para que coincidan con esta cuadrícula. Para conseguir este nivel de detalle se debe alternar entre la vista normal y la vista de cuadrícula, teniendo colorear varias veces tanto la línea como el color de fondo y así

obtener el ancho deseado.

Comentarios

Page 29: Juegos en Starlogo TNG - Cuarta parte del libro

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

Juego 13: Juego de mesa con dados

PROBLEMAS PROPUESTOS

Intenta mejorar la forma como se dan los turnos para que cada jugador “lance los dados”. Por ahora se asume que los jugadores van a respetarlo, sin embargo, intenta usar variables para limitar el turno de los jugadores para el momento en que deban hacerlo, de lo contrario no se debe generar ningún número al azar. Usa también una variable de texto para indicar esto, por ejemplo: “No es tu turno aún”, “Jugador1 debe lanzar”, “Jugador2 tiene dos turnos más”, etc.

Page 30: Juegos en Starlogo TNG - Cuarta parte del libro

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

Juego 14: Parqueando los carros

Crear un juego cuyo objetivo sea parquear adecuadamente cuatro vehículos en el menor tiempo posible. El “Jugador” deberá tener la habilidad de tomar el control de los autos y llevarlos hacia las zonas de parqueo. Deberá existir un puntaje para llevar la cuenta de los carros bien parqueados y de los errores del conductor. Al finalizar se deberá mostrar un mensaje con el puntaje total y la calificación del conductor.

? 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.2. Programar a los personajes:- Crear las variables necesarias- Crear el control para el “Conductor”- Transferir el control a los autos con base en el valor de una variable- Crear el puntaje (Positivo y negativo)- Programar los mensajes de texto3. Dibujar en el SPACELAND4. Probar5. Nuevas ideas y problemas propuestos.

Programando

IDEAS- Inicialmente deberemos crear y ubicar a todos los personajes del juego.

- Crearemos un control general para el movimiento de los personajes que pueda ser usado por cualquiera de ellos si cumplen con una condición, de esta forma podremos transferir el control desde el “Conductor” hasta cada uno de los vehículos y visceversa, usando las mismas teclas de flechas.

- Usaremos rangos de coordenadas específicos para determinar si un vehículo ha quedado en su sitio de parqueo. En este momento el puntaje subirá y se transferirá el control de nuevo al “Jugador” para el parqueo de otro auto.

- Para la transferencia del control se usarán las colisiones entre el “Conductor” y los autos, así como la ubicación adecuada en la zona de parqueo.

- Los dibujos en el SPACELAND pueden ser realizados con cualquier programa gráfico (Paint, Power Point, Illustrator, Photoshop, etc) e importados en StarLogo TNG a través de la herramienta “Image”

Page 31: Juegos en Starlogo TNG - Cuarta parte del libro

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

Juego 14: Parqueando los carros

Como en los juegos anteriores, el primer paso será crear a las familias de personajes independientes (Breeds). Aquí se han creado cinco: “Carro1”, “Carro2”, “Carro3”, “Carro4” y “Conductor”. Se han seleccionado las formas que se muestran en la imagen superior.

La imagen inferior muestra una visión anticipada de toda la programación en el CANVAS. Como se ve allí, existen procedimientos para cada uno de los personajes del juego, así como un procedimiento general (Everyone) y muchos bloques de colisión.

Comentarios

Page 32: Juegos en Starlogo TNG - Cuarta parte del libro

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

Juego 14: Parqueando los carros

De cada una de las cinco familias se ha creado solamente a 1 personaje y se ha colocado en una posición específica en el SPACELAND. Los autos han sido ubicados en la parte inferior-izquierda del terreno, mientras que el “Conductor”, por defecto ha quedado en la mitad del escenario.

Se ha inicializado la variable “Parqueado?” con un valor falso (false) para todos los personajes del juego. Este tipo de variable es única para cada personaje y es de tipo “Agent Boolean” (Color azul). Con ayuda de esta variable podremos saber si un auto ha quedado parqueado adecuadamente en su zona.

Los últimos bloques muestran y reincian el reloj y el puntaje o SCORE.

Una variable más llamada “Conductor?” de tipo “Shared number” se inicializa con un valor de “1”. Esta variable deberá ser creada antes en la región “Everyone” del CANVAS y servirá para decidir quién se moverá con las teclas de flechas (El conductor o alguno de los 4 autos)

Comentarios

Page 33: Juegos en Starlogo TNG - Cuarta parte del libro

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

Este es un procedimiento general llamado “Reglas” y se ha creado en la región “Everyone” para que pueda ser usado por todos. Esta parte se encarga de disminuir el puntaje cuando los autos se acercan a 2 pasos de zonas amarillas (Los bordes) o si tocan las zonas azules (Obstáculos). También permite mostrar un mensaje de advertencia cuando se acerca a las “Paredes” del parqueadero.

1

3

Esta imagen muestra dos variables creadas en la región “Everyone”, una llamada “Conductor?” de tipo numérica compartida y otra llamada “Parqueado?” de tipo “Agent boolean”.

También muestra un procedimiento con el nombre de “Conducir” que ha sido creado en la misma región, con el objetivo de ser usado por cualquier personaje en en juego.

2

Page 34: Juegos en Starlogo TNG - Cuarta parte del libro

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

12

4

La imagen 3 muestra un bloque RUN ONCE ubicado en la región “Runtime” del CANVAS, al cual se ha cambiado su nombre por el de “Instrucciones”. Allí se han escrito algunas líneas de texto con el objetivo del juego para ser mostradas cuando se presione dicho botón.

La imagen 4 muestra un bloque “RUN” con opción de tiempo (120 segundos), al cual también se ha cambiado su nombre por “Jugar”. Dentro de cada una de sus secciones se han colocado los procedimientos correspondientes. En las siguientes páginas se explicará cada uno de estos procedimientos con mayor detalle.

3 4

Page 35: Juegos en Starlogo TNG - Cuarta parte del libro

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

Juego 14: Parqueando los carros

Este es el procedimiento llamado “ManejaCarro1” y ha sido creado en la región “Carro1” del CANVAS. Su finalidad es la de controlar a este personaje, siempre y cuando el valor de la variable “Conductor?” sea igual a 2. Cuando esta variable tenga este valor, el procedimiento “Conducir” explicado en la página anterior podrá ser usado por este personaje y en consecuencia el “Carro1” podrá ser controlado con las flechas del teclado.

En todo momento el procedimiento “Reglas”, explicado antes, estará presente.

Page 36: Juegos en Starlogo TNG - Cuarta parte del libro

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

Juego 14: Parqueando los carros

Igualmente se ha colocado un bloque IF anidado que verifica si el “Carro1” se encuentra dentro de un rango de coordenadas “X” y “Y” establecidas y que corresponden a su zona de parqueo. Si el “Carro1” es llevado a esta posición, entonces se mostrará un mensaje, se incrementará el puntaje en 5 puntos, la variable “Parqueado?” (La cual es propia del “Carro1” porque se trata de una variable de tipo AGENT) se colocará en verdadero (TRUE) y se le pedirá al personaje (ASK AGENT) con el número de identificación 4 (ID=4), que es el “Conductor”, que vaya al centro del terreno, además que se muestre ya que estaba oculto y que la variable “Conductor?” se coloque en 1. Cuando esta variable tiene el valor de 1 será el “Conductor” quien pueda ser controlado con las flechas del teclado.

Page 37: Juegos en Starlogo TNG - Cuarta parte del libro

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

Juego 14: Parqueando los carros

Page 38: Juegos en Starlogo TNG - Cuarta parte del libro

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

Juego 14: Parqueando los carros

Este procedimiento llamado “ManejaCarro2” es muy similar al anterior. Se ha creado en la región “Carro2” del CANVAS y tiene como finalidad permitir el movimiento de este personaje, a través del procedimiento “Conducir” y de la teclas de flechas, solo cuando la variable “Conductor?” tenga el valor de 3.

Adicionalmente verifica, con un bloque IF anidado, si el “Carro2” ha quedado en su sitio de parqueo, comparando su posición con un rango de coordenadas “X” y “Y” asignadas. Cuando esto pasa se despliega un mensaje (“Bien parqueado”), se incrementa el puntaje en 5 puntos, se coloca SU variable “Parqueado?” en verdadero (TRUE) y se le pide (ASK AGENT) al personaje identificado con el número 4, es decir, el “Conductor”, que se vaya a la posición HOME (Centro del terreno), que se muestre (SHOW AGENT), pues estaba oculto y que la variable “Conductor?” tenga ahora el valor de 1. Nuevamente con este valor, se podrá controlar al “Conductor” con las flechas del teclado y este personaje podrá dirigirse hacia otro carro para parquearlo. Finalmente, el procedimiento “Reglas” se coloca fuera

de cualquier bloque IF, pues se ejecuta en todo momento sin ninguna condición.

Page 39: Juegos en Starlogo TNG - Cuarta parte del libro

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

Juego 14: Parqueando los carros

Page 40: Juegos en Starlogo TNG - Cuarta parte del libro

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

Juego 14: Parqueando los carros

Este es el procedimiento “ManejaCarro3” creado en la región “Carro3” del CANVAS. Al igual que los dos procedimientos anteriores, permite el movimiento de este personaje y verifica si ha quedado parqueado correctamente. Una vez que se logra esto, regresa el control al “Conductor”, incrementa el puntaje en 5 puntos, muestra un mensaje, así como al “Conductor”, quien estaba oculto. En todo momento este personaje está sujeto a las condiciones descritas en el procedimiento “Reglas.

Page 41: Juegos en Starlogo TNG - Cuarta parte del libro

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

Juego 14: Parqueando los carros

Page 42: Juegos en Starlogo TNG - Cuarta parte del libro

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

Juego 14: Parqueando los carros

Este es el procedimiento “ManejaCarro4” creado en la región “Carro4” del CANVAS. Al igual que los procedimientos anteriores, permite el movimiento de este personaje cuando la variable “Conductor?” sea igual a 5. Verifica si ha quedado en la zona de parqueo, muestra un mensaje, incrementa el puntaje y devuelve el control al “Conductor”, haciendo que éste sea visible nuevamente.

Page 43: Juegos en Starlogo TNG - Cuarta parte del libro

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

Juego 14: Parqueando los carros

Page 44: Juegos en Starlogo TNG - Cuarta parte del libro

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

Juego 14: Parqueando los carros

Este es procedimiento que controla el comportamiento del “Conductor”, por tanto ha sido creado en esta misma región del CANVAS.

Cuando la variable “Conductor?” tenga el valor de 1 este personaje podrá ser controlado con las flechas del teclado. Esto ocurre en dos momentos: Al inicio del juego y cada vez que uno de los carros ha sido parqueado correctamente en su respectiva zona de parqueo.

Los bloques finales corresponden a la evaluación que obtiene el “Conductor”, con base en el puntaje y en el tiempo invertido en la tarea. Para conseguir esto se ANIDAN varios bloques IF como se muestra en la imagen. El primero de ellos es un bloque IF-ELSE que verifica si existen 4 carros bien parqueados, es decir, si existen cuatro personajes cuya variable “Parqueado?” sea verdadera (TRUE). En este punto se ANIDA otro bloque IF-ELSE para saber si el “Conductor” lo ha hecho sin haber cometido errores (Puntaje=20), en caso de ser cierta esta condición se despliega un mensaje de felicitación y se muestra su puntaje. Los bloques IF-ELSE ANIDADOS al interior de la estructura se utilizan para calificar al “Conductor” cuando el puntaje está entre 15 y 19 y también cuando el puntaje es menor a 15 puntos.Cuando el “Conductor” no ha podido parquear los cuatro carros en el tiempo dado (120 segundos), se despliega un mensaje indicándole que no hay más tiempo y que además es un pésimo conductor. Esta es la parte ELSE del bloque IF-ELSE que anida a los demás.

Comentarios

Page 45: Juegos en Starlogo TNG - Cuarta parte del libro

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

Juego 14: Parqueando los carros

En la sección “Collisions” se colocan los bloques que permiten controlar lo que sucede cuando los carros se tocan entre sí y cuando el “Conductor” toca a cualquiera de los cuatro carros.

Cada vez que el “Conductor” toca a uno de los carros se pierde la posibilidad de controlarlo con las teclas de flechas, pues la variable “Conductor?” cambia a un valor diferente de 1. Así por ejemplo, cuando el “Conductor” toca al “Carro1” la variable cambia al valor 2, y cuando toca al “Carro2”, la variable cambia al valor 3.

En este mismo momento de colisión, el “Conductor se oculta (HIDE AGENT)

Todas las colisiones entre el “Conductor” y cada uno de los cuatro carros tienen la misma finalidad, es decir, cambiar la variable “Conductor?” a un valor diferente de 1 y ocultar al “Conductor”. Con esto se logra además que se puedan ir controlando con las teclas de flechas a cada uno de los cuatro carros. El control vuelve al “Conductor” cuando los carros queden parqueados en su zona de parqueo asignada.

Las colisiones entre los carros solamente despliegan el mensaje “Cuidado!”, aunque podría ser una buen idea para mejorar el juego, disminuir el puntaje cada vez que esto suceda.

Page 46: Juegos en Starlogo TNG - Cuarta parte del libro

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

Juego 14: Parqueando los carros

Page 47: Juegos en Starlogo TNG - Cuarta parte del libro

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

Juego 14: Parqueando los carros

Finalmente en el SPACELAND es necesario demarcar las zonas de parqueo con ayuda de las herramientas de dibujo, así crear algunas zonas azules que representan los obstáculos. Para dibujar las zonas de parqueo es importante tener en cuenta el rango de coordenadas que se establecieron en el juego, sin embargo, estos números pueden ser cambiados fácilmente.Las imágenes laterales han sido creadas en PAINT e importadas en StarLogo TNG. La imagen con el texto “Favor parquear en reversa” ha sido copiada de la Internet e importada igualmente.

En el SPACELAND se observan los tres botones que controlan el juego, así como el puntaje (SCORE) y el tiempo (CLOCK)

Page 48: Juegos en Starlogo TNG - Cuarta parte del libro

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

Juego 14: Parqueando los carros

Este bloque se encuentra en el CAJÓN “Traits” de la pestaña “Factory”. Este bloque permite ocultar o esconder a un personaje dentro del SPACELAND antes o durante un juego. En el ejemplo se utilizó para ocultar al “Conductor” cuando este personaje tocaba a alguno de los cuatro carros.

Este bloque se encuentra en el CAJÓN “Traits” de la pestaña “Factory”. Este bloque permite mostrar a un personaje dentro del SPACELAND cuando éste ha sido antes ocultado. En el ejemplo se utilizó para mostrar nuevamente al “Conductor”, cuando cualquiera de los cuatro carros ha sido parqueado adecuadamente en su zona.

Este bloque se encuentra en el CAJÓN “Logic” de la pestaña “Factory”. Permite comparar si dos elementos son verdaderos. Solo cuando esto sucede reporta un valor verdadero, en ningún otro caso reporta este valor. Por ejemplo, si uno de los dos elementos es verdadero y el otro es falso, su respuesta aún seguirá siendo falsa. En el ejemplo se utilizó para verificar si los carros estaban en sus respectivas zonas de parqueo, comparando la posición actual de dichos carros con los rangos de coordenadas establecidos. Para decidir si un carro estaba

bien parqueado la coordenada “X” del carro Y la coordenada “Y” (Las dos al mismo tiempo = AND) deberían estar en los rangos establecidos. Solo en ente caso se podría avalar y aprobar la tarea del “Conductor”.

Bloques adicionales usados

PROBLEMAS PROPUESTOS

- Modifica el juego para hacerlo mucho más difícil: Reduce el rango de las coordenadas “X” y “Y”, haciendo que el proceso de parqueo tenga que ser realizado con mayor exactitud; crea más obstáculos; crea zonas de parqueo de diferente tamaño, entre otras.

- Modifica la programación para hacer que los vehículos solo puedan ser parqueados en reversa y no en otro sentido. (Usa la propiedad “Heading”)

- Penaliza al “Conductor” quitando puntos, cada vez que haya colisiones entre los carros, pues esta sería una situación muy grave en un parqueadero real.

- Dibuja un parqueadero mucho más complicado. Importa imágenes de la Internet, ó créalas en algún programa gráfico y llévalas a StarLogo TNG.

Page 49: Juegos en Starlogo TNG - Cuarta parte del libro

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

Juego 15: Tiro al blanco

Crear un juego similar al del “Tiro al blanco”, en donde el jugador tenga que lanzar un proyectil y éste se mueva describiendo una parábola. La trayectoria del proyectil deberá responder a las ecuaciones del tiro parabólico y dependerá de la velocidad incial y del ángulo de lanzamiento. El jugador lanzará 3 veces el proyectil a blancos ubicados en diferentes posiciones. Al final deberá aparecer el puntaje.

? 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.2. Programar a los personajes:- Crear las variables necesarias- Programar el tiro parabólico del proyectil- Programar una tecla para el lanzamiento de un solo proyectil por blanco- Crear un puntaje con base en la posición en donde han caido los proyectiles- Programar los mensajes de texto3. Dibujar en el SPACELAND4. Probar5. Nuevas ideas y problemas propuestos.

Programando

IDEAS- En StarLogo TNG podemos hacer la simulación del movimiento de proyectiles, siguiendo las ecuaciones de la trayectoria del tiro parabólico que podemos encontrar fácilmente en libros o en la Internet.

- En este ejemplo deberemos simular el desplazamiento del proyectil tanto en su eje “X”, como en su altura. El eje “Y” solo lo cambiaremos cuando el “Jugador” realice un nuevo disparo.

- Usaremos variables de tipo numéricas compartidas (Shared number) para definir los valores de velocidad inicial y ángulo de lanzamiento. Estas variables serán controladas desde la ventana “Runtime” en el SPACELAND, a través de un bloque de deslizamiento (SLIDER) que permitirá ajustar los valores fácilmente con ayuda del mouse.

- Usaremos otras dos variables. Una de ellas será de tipo numérica compartida (Shared number) que permitirá saber cuántos disparos ha realizado el “Jugador” y la otra de tipo texto, para que el “Juez” muestre algunos mensajes.

Page 50: Juegos en Starlogo TNG - Cuarta parte del libro

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

Juego 15: Tiro al blanco

Se han creado tres familias (Breeds) de personajes: “Proyectil”, “Jugador” y “Juez” y se han escogido las formas que se muestran en la imagen superior. La imagen inferior muestra una visión general y anticipada de toda la programación del juego en el CANVAS. La mayor cantidad de bloques se encuentran en la región “Proyectil”, allí se encuentran definidas las cuatro variables y el procedimiento que hace que el proyectil describa un movimiento parabólico.

Page 51: Juegos en Starlogo TNG - Cuarta parte del libro

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

Juego 15: Tiro al blanco

En la región “Setup” se han colocado los bloques necesarios para iniciar el juego. Allí se ha incluido el reloj y el puntaje (SCORE) con valor de cero, así como la variable “Intentos” con el mismo valor. El “Jugador” y el “Juez” han sido ubicados en sitios específicos. También se ha iniciado la variable de texto “Puntaje” con el mensaje “Ajusta el ANGULO y LA VELOCIDAD. Dispara con barra de espacio. Tienes 3 tiros” de esta forma se podrá también mostrar las instrucciones al momento de empezar el juego.

Page 52: Juegos en Starlogo TNG - Cuarta parte del libro

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

Juego 15: Tiro al blanco

En la imagen superior se muestra el procedimiento “Lanzar” creado en la región “Jugador” del CANVAS. Este procedimiento se encarga de GENERAR (HATCH-DO) al personaje “Proyectil” cuando se presione la barra espaciadora del teclado, también se encarga de reiniciar el reloj y de incrementar la variable “Intentos” en 1. Estas acciones son necesarias para preparar el lanzamiento del proyectil, así como para ubicar al “Jugador” en los lugares de disparo.

El procedimiento “Mensajes” se ha creado en la región “Juez” del CANVAS. Se utiliza para que el personaje “Juez” muestre los mensajes correspondientes a las instrucciones iniciales, al resultado parcial de cada lanzamiento y al resultado final después de que el “Jugador” ha completado los tres disparos.

Page 53: Juegos en Starlogo TNG - Cuarta parte del libro

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

Juego 15: Tiro al blanco

Este es el procedimiento “Dispara” creado en la región “Proyectil” del CANVAS. En las siguientes páginas se mostrarán imágenes parciales con un mejor detalle. En esta región también se han creado las cuatro variables del juego: “Intentos”, “Puntaje”, “Angulo” y “Velocidad”. Las dos últimas variables tienen asociado un bloque “SLIDER” que permite ajustar su valor, directamente desde el SPACELAND. Esto permite que el “Jugador” pueda ajustar estos valores dinámicamente, es decir, mientras está jugando. Antes de disparar deberá ajustar estos valores.

Page 54: Juegos en Starlogo TNG - Cuarta parte del libro

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

Juego 15: Tiro al blanco

La trayectoria que describe un proyectil en un movimiento parabólico puede ser establecida por medio de estas ecuaciónes . Como el tiempo es importante en las fórmulas, siempre será necesario reiniciar el reloj (CLOCK) con cada lanzamiento. Otro elemento a tener en cuenta es la dimensión del SPACELAND. Recordemos que el TERRENO, es decir, la región de color verde tiene una extensión de 100 pasos en sus ejes “X” y “Y”. Deberemos tener en cuenta estos límites a la hora de establecer un rango para la velocidad inicial, de otra forma el proyectil podría

avanzar mucho más de estas fronteras.

Page 55: Juegos en Starlogo TNG - Cuarta parte del libro

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

Juego 15: Tiro al blanco

Esta es la primera parte del procedimiento “Dispara” y se encarga específicamente de la simulación del tiro parabólico. El bloque IF-ELSE su usa para hacer que el proyectil no quede por debajo del nivel del terreno cuando termina su desplazamiento, permitiendo que se pueda ver su posición al final del disparo y también asignar un puntaje, con base en el punto de llegada (El blanco tiene diferentes zonas de colores y cada una da un puntaje diferente al “Jugador”)

Page 56: Juegos en Starlogo TNG - Cuarta parte del libro

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

Juego 15: Tiro al blanco

Otro elemento importante en la simulación del tiro parabólico es la ubicación inicial del “Jugador” (Quien será el encargado de disparar el “Proyectil”). Ya que lo hemos ubicado en la coordenada X=-49, deberemos descontar esa cantidad de pasos en la ecuación. De haberlo ubicado en la coordenada X=0, no hubiésemos tenido que descontar nada, sin embargo, tampoco hubiésemos aprovechado toda la extensión del terreno y hubiésemos limitado el movimiento parabólico de los proyectiles a solo 50 pasos, como máximo.

La sección inferior del procedimiento “Dispara” se encarga del puntaje. La condición necesaria para hacerlo es que el reloj (CLOCK) supere los siete segundos, el cual es un tiempo suficiente para cualquier lanzamiento parabólico en esta simulación. El ángulo se ha limitado al rango comprendido entre 1° y 89°, mientras que la velocidad se ha limitado hasta 31. Cualquier disparo realizado no va a superar los 7 segundos de vuelo, ni tampoco llegará más lejos que los 100 pasos que tiene el terreno. Estos límites se asignan directamente a los bloques “SLIDER” que aparecen el la ventana “Runtime” del SPACELAND. Recordemos que estos bloques permiten asignar directamente valores a las variables compartidas, en este caso, “Velocidad” y “Ángulo”

Page 57: Juegos en Starlogo TNG - Cuarta parte del libro

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

Juego 15: Tiro al blanco

Cada vez que el proyectil toque una zona de color se alimentará la variable de texto “Puntaje” con un mensaje, también se incrementará el SCORE (Excepto en la zona verde) y finalmente el proyectil desaparecerá después se unos segundos (Bloque YIELD)

Page 58: Juegos en Starlogo TNG - Cuarta parte del libro

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

Juego 15: Tiro al blanco

El bloque “Jugar” corresponde a un bloque “Forever” colocado en la sección “Runtime” del CANVAS. Aquí se han colocado directamente los procedimientos “Dispara” y “Mensajes” en las secciones “Proyectil” y “Juez” respectivamente. Mientras tanto el “Jugador” podrá realizar solamente tres veces el procedimiento “Lanzar”, es decir, tres disparos. Esto se hace mediante los bloques IF y la condición de la variable “Intentos”. Al inicio del juego esta variable tiene el valor “0” y el “Jugador” se encuentra listo para el primer disparo, después de este disparo la variable cambia su valor a “1” y el “Jugador” será llevado a una nueva posición para disparar nuevamente, después de este segundo disparo la variable

cambia a “2” y el “Jugador” será llevado a otra posición para el disparo final.

Page 59: Juegos en Starlogo TNG - Cuarta parte del libro

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

Juego 15: Tiro al blanco

Finalmente en el SPACELAND se deberán dibujar los tres blancos como se indica en la imagen. La zona amarilla es la que otorga más puntaje al “Jugador”. En este caso las imágenes de los blancos se han dibujado en un programa gráfico sencillo (PAINT) y se han llevado a StarLogo TNG con ayuda de la herramienta de importación “Drawing - Image”. Para un funcionamiento adecuado, debemos estar atentos de la escala RGB de los colores. (Ver tabla con las equivalencias RGB)

En la ventana “Runtime” se pueden ver los bloques “SLIDER” que permiten ajustar los valores de las variable “Ángulo” y “Velocidad”. Los valores máximos de estas variable se escriben directamente sobre estos bloques (89 para el “Ángulo” y 31

para la “Velocidad”)

Page 60: Juegos en Starlogo TNG - Cuarta parte del libro

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

Juego 15: Tiro al blanco

Estos bloques se encuentran en el CAJÓN “Math” de la pestaña “Factory”. Permiten calcular en “Seno” y el “Coseno” del número asociado al final. En el ejemplo se usaron para calcular el “Seno” y el “Coseno” del ángulo del lanzamiento del proyectil, dentro de las ecuaciones que rigen el comportamiento de un objeto en un movimiento parabólico.

Este bloque se encuentra en el CAJÓN “Setup and Run” de la pestaña “Factory”. Una vez colocado en el CANVAS se puede visualizar en la ventana “Runtime” del SPACELAND. Al lado derecho del bloque se asocia una variable compartida de tipo numérica y permite ajustar su valor de una forma dinámica, es decir, mientras el programa está en funcionamiento. En el ejemplo se utilizó para que la persona que juegue pueda ajustar los valores del ángulo de lanzamiento y velocidad inicial del proyectil, directamente desde el SPACELAND y con ayuda del mouse.

Bloques adicionales usados

PROBLEMAS PROPUESTOS

- Modifica el juego y dibuja más blancos en diferentes posiciones “Y”

- Adapta la simulación del tiro parabólico para crear un juego de basketball

- Adapta la simulación del tiro parabólico para la creación de un nuevo juego que emule el tiro de cañón. Las coordenadas “X” y “Y” deberán ajustarse mediante variables compartidas y bloques “SLIDER”, de tal forma que los disparos puedan ser dirijidos a cualquier zona del terreno.

- Realiza la simulación de otros tipos de movimientos en StarLogo TNG y crea juegos sencillos en donde se usen estas simulaciones.

Page 61: Juegos en Starlogo TNG - Cuarta parte del libro

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

Juego 16: Yermis - Adaptación

Crear una adaptación del popular juego colombiano “Yermis”. En esta versión debe existir un solo “Jugador” quien se encargará de recoger 10 objetos y llevarlos al centro del campo. A medida que los objetos sean llevados al centro, se irá construyendo una torre; el “Jugador” podrá recoger más de 1 objeto a la vez. Para ganar el juego el “Jugador” debe crear una torre de 10 objetos, evitando los proyectiles que son lanzados desde la parte superior del SPACELAND por otro personaje (“El Computador”).

? 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.2. Programar a los personajes:- Crear las variables necesarias- Programar el movimiento del “Jugador”- Programar el lanzamiento de balas- Programar la recolección de objetos y el armado de la torre- Preparar las colisiones entre personajes3. Probar4. Nuevas ideas y problemas propuestos.

Programando

IDEAS- Podemos tomar algunos elementos de juegos anteriores, por ejemplo, el lanzamiento de balas desde la parte superior del SPACELAND (Ver juego 12: Jugador vs Computador).

- Uno de los primeros problemas a resolver será la “Recolección” de los objetos por parte del “Jugador”. Para lograr esto deberemos usar los bloques de colisión y una variable que nos indique que el “Objeto” ha sido “Tomado” y que por tal razón debe seguir al “Jugador”. Una vez que los objetos lleguen al centro del terreno (Coordenadas X=0 y Y=0), otra variable nos informará de esta situación y permitirá que los objetos sean “Soltados” por el “Jugador”, en otras palabras, que ya no sigan las coordenadas de este personaje.

- Podemos utilizar un bloque “monitor” asociado a una variable compartida para saber cuántos objetos han sido recogidos y llevados correctamente al centro del terreno, ó, en otras palabras, para saber que altura tiene la torre.

Page 62: Juegos en Starlogo TNG - Cuarta parte del libro

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

Juego 16: Yermis - Adaptación

Se han creado cuatro familias (Breeds) de personajes: “Jugador”, “Computador”, “BalasComputador” y “Torre” y se han escogido las formas que se muestran en la imagen superior. La imagen inferior muestra una visión general y anticipada de toda la programación del juego en el CANVAS. Existen procedimientos para el movimiento del “Jugador”, “Computador” y “BalasComputador”, también un procedimiento en la región del personaje “Torre” que tiene el mayor número de bloques, así como las variables que requiere el juego.

Page 63: Juegos en Starlogo TNG - Cuarta parte del libro

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

Juego 16: Yermis - Adaptación

En la región “Setup” se han preparado las condiciones iniciales del juego: Se ha creado un solo “Computador” y un solo “Jugador” y se han ubicado en las posiciones que muestra la imagen. Igualmente se han creado 10 personajes de la familia “Torre” en una posición al azar pero dentro de los límites -30 y 30, tanto en el eje “X”, como en el eje “Y”. También se han iniciado las cuatro variables del juego: “Tocada”, “Centro?”, “ContarTorre” y “Ganador” con los valores mostrados, además de la variable “Score”.

Page 64: Juegos en Starlogo TNG - Cuarta parte del libro

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

Juego 16: Yermis - Adaptación

En la región “Jugador” del CANVAS se ha creado el procedimiento “Mueve”, el cual permite el control del personaje “Jugador” por medio de las flechas del teclado. En el eje “Y” se ha limitado su movimiento para que solo pueda llegar hasta las coordenadas 30 y -30. El movimiento horizontal (Eje “X”) se ha logrado mediante el control de la posición horizontal (Bloque “Set X”) para que el jugador pueda VER, en todo momento, los proyectiles disparados desde la parte superior del SPACELAND.

Page 65: Juegos en Starlogo TNG - Cuarta parte del libro

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

Juego 16: Yermis - Adaptación

El procedimiento “Muevebalas” permite el desplazamiento de los proyectiles de forma descendente desde la parte superior del SPACELAND, también se encarga de desaparacer las balas cuando éstas alcanzan una coordenada “Y” inferior a -35.

La imagen inferior muestra tres variables creadas en la región “Torre” del CANVAS. Dos de ellas, “Centro?” y “Tocada” son de tipo “Agent Boolean” y solo tiene dos valores posibles: Verdadero (TRUE) ó falso (FALSE). La otra variable, “ContarTorre” es de tipo numérica-compartida y tiene además un bloque “Monitor” asociada para conocer su valor mientras se está jugando.

Este procedimiento permite que el “Computador” dispare las “Balas” y pueda moverse de forma horizontal siguiendo las coordenadas del “Jugador”. Como se explicó en el juego 12, los bloques “Yield” permiten pausar la ejecución de las acciones descritas en el procedimiento. El “Computador” solo puede disparar las “Balas” mientras que el “Jugador” esté vivo (alive? ID=0). Todos los mensajes en el juego son desplegados por este personaje, pues se ha asociado la variable de texto “Ganador” al final.

Page 66: Juegos en Starlogo TNG - Cuarta parte del libro

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

Juego 16: Yermis - AdaptaciónEl procedimiento “Armartorre”, creado en la región “Torre” del CANVAS, permite que este

personaje pueda moverse detrás de las coordenadas “X” y “Y” del “Jugador” (ID=0). Para lograr esto se deben cumplir dos condiciones, la primera es que estos objetos (Torres) no se encuentre en el centro del terreno (xcor OR ycor ≠ 0) y la segunda es que SU variable “Tocada” se encuentre en verdadero (TRUE), lo cual se consigue cuando el “Jugador” y la “Torre” se tocan (Colisión). Cuando la “Torre” es llevada al centro (else), SU variable “Centro?” se coloca en verdadero (TRUE) y su altura se ajusta de acuerdo al valor de la variable “ContarTorre”, que inicialmente es cero (Y va sumando con cada “Torre” llevada al centro) y por tanto la primera “Torre” quedará al nivel del terreno. Cuando el valor de esta variable sea 10, el “Computador” (ID=1) desaparecerá y el

“Jugador” ganará el juego, lo cual se indica mediante la variable de texto “Ganador”.

Page 67: Juegos en Starlogo TNG - Cuarta parte del libro

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

Juego 16: Yermis - Adaptación

En un bloque “Forever” colocado en la región “Runtime” del CANVAS se incluyen los procedimientos previos, cada uno en la sección adecuada del bloque. Finalmente se reemplaza su nombre por “Jugar”.

En esta misma región se coloca un bloque RUN ONCE, con el nombre de “Instrucciones” y en la sección del “Jugador”, se incluye un mensaje de texto que será mostrado cada vez que este botón se presione desde la ventana “Runtime” del SPACELAND.

Page 68: Juegos en Starlogo TNG - Cuarta parte del libro

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

Juego 16: Yermis - Adaptación

En la región de “Collisions” se configura el comportamiento de los personajes cuando éstos se encuentran en el terreno. Cuando las “Balas” tocan al “Jugador”, éste desaparece y se reproduce un sonido, igualmente la variable “Ganador” se alimenta con el texto “EL COMPUTADOR!” y finalmente la “Balas” también desaparece.

Cuando el “Jugador” y la “Torre” se encuentran, la variable “Tocada”, la cual es PROPIA de este objeto “Torre”, se coloca en verdadero (TRUE).

En la ventana “Runtime” del SPACELAND se pueden ver los cinco botones que controlan el juego: - Comenzar (Bloque SETUP)- Resultado: El ganador es... (Bloque MONITOR y variable)- Jugar (Bloque FOREVER)- Instrucciones (Bloque RUN ONCE)- Objetos en en centro (Bloque MONITOR y variable)

Page 69: Juegos en Starlogo TNG - Cuarta parte del libro

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

PROBLEMAS PROPUESTOS

- Incluye un segundo “Computador” que lance proyectiles desde la parte inferior del SPACELAND, haciendo mucho más difícil el juego.

- Incluye un TRUCO dentro del juego para que el “Jugador” pueda tener un “Escudo” que se active mediante una tecla y lo proteja de las balas. Este “Escudo” solo podrá ser activado muy pocas veces dentro del juego.

- Incluye algunas zonas de protección para el “Jugador”

- Ajusta el número de “Torres” de forma dinámica, mediante el uso de una variable compartida numérica asociada a un bloque SLIDER. Esto permitirá definir el nivel de dificultad del juego desde el SPACELAND.

Juego 16: Yermis - Adaptación

En el SPACELAND es necesario dibujar una pequeña región circular, de cualquier color, para indicar en dónde está el centro del terreno.El objetivo final del juego es poder construir la torre con los 10 objetos como se muestra aquí. Recordemos que el jugador debe evitar las balas lanzadas desde la parte superior y “RECOGER” las 10 “Torres” hasta el centro. El “Jugador” puede tomar los objetos uno a uno, ó también puede tomar varios de ellos al mismo tiempo.

Page 70: Juegos en Starlogo TNG - Cuarta parte del libro

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

Juego 17: Cruzando la avenida

Crear un juego que simule el tráfico de una avenida, con vehículos que circulen a diferente velocidad y por varios carriles. El “Jugador” deberá cruzar la avenida, teniendo cuidado de no ser arrollado por los autos. La simulación deberá incluir vehículos de diferentes tipos y al menos uno de ellos deberá tener la habilidad de adelantar a los demás. Igualmente debe inlcuirse un límite de tiempo para el “Jugador”.

? 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.2. Programar a los personajes:- Crear las variables necesarias- Colocar a los autos en la autopista- Programar el movimiento de los autos- Programar el comportamiento del “Jugador”- Programar las colisiones entre personajes3. Probar4. Nuevas ideas y problemas propuestos.

Programando

IDEAS- Cada uno de los autos deberá tener una velocidad diferente y un carril específico. El más veloz de ellos podrá adelantar a los demás tipos de vehículos, para lo cual se deberá pensar en una forma de detección de los autos que están alrededor.

- En la simulación del tráfico será necesario que los autos que vayan llegando al extremo del terreno vayan desapareciendo, y al mismo tiempo, se vayan generando en el extremo opuesto.

- El “Jugador” deberá cruzar la calle en cinco ocasiones para ganar el juego. Para poder cruzar dispondrá solo de 20 segundos, trás los cuales se reiniciará el reloj y se ubicará al “Jugador” en su sitio de partida.

- Cada vez que el “Jugador” logre cruzar la avenida en el tiempo disponible, el puntaje se incrementará en 1 y cuando éste llegue a cinco, el juego terminará.

Page 71: Juegos en Starlogo TNG - Cuarta parte del libro

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

Juego 17: Cruzando la avenida

Se han creado cinco familias (Breeds) de personajes: “Jugador”, “Deportivos”, “Familiares”, “Camionetas” y “Carga” y se han escogido las formas que se muestran en la imagen superior. La imagen inferior muestra una visión general y anticipada de toda la programación del juego en el CANVAS. En cada sección se han creado los procedimientos correspondientes al comportamiento de cada personaje. En este ejemplo se ha usado también la sección “Everyone” en donde se han creado cuatro procedimientos que se explicarán a continuación.

Page 72: Juegos en Starlogo TNG - Cuarta parte del libro

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

Juego 17: Cruzando la avenida

Uno de los primeros problemas a resolver es el de cómo ubicar a todos los autos en el SPACELAND. Vamos a colocar 6 autos de cada familia en sus carriles específicos, sin embargo, ¿Cómo podemos hacer para que al colocarlos al azar en dichos carriles queden alejados unos de otros?

La respuesta está en un concepto usado en programación llamado RECURSIVIDAD. En la región “Everyone” del CANVAS se han creado cuatro procedimientos para la ubicación de los 6 autos de cada una de las 4 familias. En estos cuatro procedimientos se aplica el concepto de recursividad cuando el procedimiento es usado dentro del mismo procedimiento.

Por ejemplo, el procedimiento “ColocarDeportivos” permite que los autos de esa familia sean ubicados al azar a lo largo del eje “X” (setx random 101-50), pero cuando se detectan personajes en un radio de 2 pasos, el mismo procedimiento se vuelve a ejecutar para lograr que no queden autos tan cerca.Los procedimientos tambipen se encargan de otras acciones como: Establecer el tamaño y orientación, así como inicializar la variable “FinDeportivos” en falso (FALSE).

Page 73: Juegos en Starlogo TNG - Cuarta parte del libro

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

Juego 17: Cruzando la avenida

Las mismas acciones se ejecutan para los demás tipos de autos, con la diferencia de la variable que se inicializa y la coordenada “Y”. Mientras los tipos de auto “Deportivos” y “Carga” se crean en la misma coordenada “Y” (Cero por defecto), el tipo de auto “Familiar” se ubica en “Y”=-2 y las “Camionetas” se ubican en “Y”=-4.

En los cuatro procedimientos existe una variable de tipo “Agent-Boolean”, la cual admite solo dos valores: Falso ó Verdadero. Esta variable se debe crear antes en la región que corresponde al BREED ó familia de personaje. Se les ha dado el nombre de “Fin..Breed” y se utilizará para saber cuándo los vehículos se acercan al fin del camino (Terreno), para que desaparezcan.

El concepto de “Recursividad” se puede emplear también de otras formas, por ejemplo, para ubicar a varios personajes de forma aleatoria pero en una misma región de un color específico; ó para ubicarlos en una zona delimitada por un rango de coordenadas.

Estos cuatro procedimientos se colocarán dentro del bloque “Set up” para la creación y ubicación de los personajes.

Page 74: Juegos en Starlogo TNG - Cuarta parte del libro

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

Juego 17: Cruzando la avenida

En la región “Set up” del CANVAS se ha colocado este bloque “Set up”, al cual se ha cambiado su nombre por “Comenzar”. Aquí se han colocado los cuatro procedimientos explicados, dentro los bloques de creación (Create...breed) para la ubicación de los personajes en el juego. También se ha creado 1 “Jugador” y se ha colocado en las coordenadas “X”=0 y “Y”=-15. Igualmente se ha colocado la variable interna SCORE (Puntaje) con un valor de cero y el reloj (CLOCK) con el mismo valor inicial.

Page 75: Juegos en Starlogo TNG - Cuarta parte del libro

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

Juego 17: Cruzando la avenida

Este es el procedimiento “mover”, ubicado en la región “Carga” del CANVAS. Permite el movimiento de este tipo de vehículos, de derecha a izquierda sobre la coordenada “Y”=0 del terreno, a una velocidad de 0,5. Cuando los autos de carga superan la coordenada “X<47”, éstos desaparacen y al mismo tiempo cambian el valor de SU variable “FinCarga” a TRUE (Verdadero). Otro bloque IF se encarga de contar los vehículos de carga que tengan la variable en verdadero, si este número es mayor a cero, es decir, al menos 1 auto de carga ha llegado al fin del camino y ha desaparecido, entonces se genera (HATCH=Engendrar ó crear) un nuevo personaje de estos en el lado derecho del terreno. Es importante que en el bloque “Hatch-do” se inicialice de nuevo la variable en falso (FALSE), ya que los personajes que son creados de esta forma HEREDAN las mismas características del agente que los creó.

Page 76: Juegos en Starlogo TNG - Cuarta parte del libro

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

Juego 17: Cruzando la avenida

La mismas acciones se realizan con los otros vehículos, por ejemplo, este es el procedimiento “MueveCamionetas”, ubicado en la región “Camionetas” del CANVAS. Permite el movimiento de este tipo de vehículos, de derecha a izquierda sobre la coordenada “Y”=-4 del terreno, a una velocidad de 2. Cuando las “Camionetas” superan la coordenada “X<47”, éstas desaparacen y al mismo tiempo cambian el valor de SU variable “FinCamionetas” a TRUE (Verdadero). Otro bloque IF se encarga de contar las “Camionetas” que tengan la variable en verdadero, si este número es mayor a cero, es decir, al menos 1 “Camioneta” ha llegado al fin del camino y ha desaparecido, entonces se genera (HATCH) un nuevo personaje de estos en el lado derecho del terreno. Dentro del bloque IF se ha colocado la variable de nuevo

en falso (FALSE) para evitar que se herede esta característica.

Page 77: Juegos en Starlogo TNG - Cuarta parte del libro

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

Juego 17: Cruzando la avenida

Con los vehículos “Familiares” se repite el mismo proceso descrito, la única diferencia es la coordenada “Y” sobre la que se ubica el personaje (-2), la variable usada en este caso (“FinFamiliares”) y la velocidad de estos vehículos (1.5)

Page 78: Juegos en Starlogo TNG - Cuarta parte del libro

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

Juego 17: Cruzando la avenida

Para los autos “Deportivos” se repite el mismo proceso. Como este tipo de vehículos tendrá la habilidad de adelantar, es necesario crear otra variable que llamaremos “Carroscerca”, la cual es una variable de tipo “Shared number list”. Este tipo de variable fue usada en los juegos 10B y 11. Aquí se usa para almacenar una lista de números de identificación (ID) de los personajes que se encuentren en un radio de 3 pasos (SMELL), cuando la lista tenga al menos un ID, entonces los autos “Deportivos” cambiarán de carril hasta la coordenada “Y”=-6. Cuando no haya ningún elemento en la lista, entonces los carros deportivos se moverán a lo largo de la coordenada “Y”=0

Page 79: Juegos en Starlogo TNG - Cuarta parte del libro

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

Juego 17: Cruzando la avenida

Este es el procedimiento “Caminar” creado en la sección “Jugador” del CANVAS. Permite el movimiento del “Jugador” con ayuda de las teclas de flechas en el teclado. Su desplazamiento se ha limitado a los rangos mostrados en la imagen.

Cuando este personaje supera la coordenada “Y”>12, es decir, cuando ya ha cruzado la avenida, el puntaje (SCORE) se incrementa en 1, se reinicia el reloj y se ubica nuevamente al personaje en la posición de partida. Cuando el SCORE ha llegado a 5, se muestra un mensaje indicando que el “Jugador” ha ganado. Si el tiempo alcanza los 20 segundos y el jugador no ha cruzado aún la avenida, éste personaje desaparece y el jugador pierde.

Page 80: Juegos en Starlogo TNG - Cuarta parte del libro

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

Juego 17: Cruzando la avenida

En la región “Runtime” y dentro de un bloque “Forever” se han colocado los cinco procedimientos correspondientes a cada uno de los personajes. También se ha cambiado el nombre del bloque por “Jugar”.

En esta misma sección “Runtime” se ha incluido un bloque RUN ONCE con las instrucciones del juego, por medio de un mensaje de texto.

Finalmente en la región “Collisons” se colocan los cuatro bloques de colisión entre el “Jugador” y cada uno de los autos. Cuando suceda el choque la acción simpre será la misma: El “Jugador” morirá.

Page 81: Juegos en Starlogo TNG - Cuarta parte del libro

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

Juego 17: Cruzando la avenida

Finalmente en el SPACELAND deberemos dibujar la avenida. Es necesario tener en cuenta que los autos se desplazarán desde la coordenada “Y”=0 hasta “Y”=-6, por tal razón la carretera deberá tener al menos esta dimensión en su ancho. Opcionalmente se puede dibujar con líneas las zonas de partida y de llegada para el “Jugador”.

En la ventana “Runtime” del SPACELAND se pueden ver los tres botones que controlan el juego, también se muestra el SCORE y el CLOCK (Reloj) que aparecen en la parte inferior derecha del Spaceland.

Page 82: Juegos en Starlogo TNG - Cuarta parte del libro

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

Juego 17: Cruzando la avenida

PROBLEMAS PROPUESTOS

- Intenta colocar a todos los autos con base en la forma indicada en la imagen inferior. Con este método se logra distribuirlos sobre el eje “X” con una misma distancia entre autos. También intenta aprovechar todo el ancho del SPACELAND. ¡Piensa en una forma de hacerlo!

- Mejora el “Adelantamiento” de los autos por parte de los “Deportivos”, de forma que puedan determinar cuáles espacios están vacios adelante para usarlos en su desplazamiento.

- Realiza una simulación de una autopista de doble sentido, con ocho carriles, cuatro en cada dirección. Intenta realizar una simulación mucho más cercana a la vida real.

- Intenta asignar un tiempo de vida a los autos con ayuda de una variable azul de tipo numérico (EDAD). Esta variable se incrementará con el valor absoluto de su posición horizontal (Cor X) y cuando llegue a 100 (Fin del terreno), entonces los autos deberán desaparecer e inmediatamente aparecer en el otro extremo, reiniciando también su variable de EDAD. Esta será otra forma de simular el desplazamiento de los autos.

- Realiza la simulación de un cruce de calles con semáforo, de tal forma que los vehículos que vayan en una dirección (Por ejemplo, sobre el eje “X”), tengan que deternerse por unos segundos en la luz roja, mientras los autos que van en la otra dirección pueden avanzar normalmente. Después de un tiempo acordado la situción se debe invertir para los autos, permitiendo el movimiento de los que estaban detenidos y parando a los que estaban desplazándose.

Page 83: Juegos en Starlogo TNG - Cuarta parte del libro

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

Juego 18: Cada uno en su lugar

Crear un juego en donde el personaje principal deba encajar diversos tipos de objetos en sus respectivos lugares. El “Jugador” deberá empujar tres tipos diferentes de objetos y llevarlos al sitio establecido. A medida que se vayan organizando los objetos en sus zonas, el puntaje irá aumentando. Si el “Jugador” intenta llevar los objetos a una región equivocada se le penalizará.

? 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.2. Programar a los personajes:- Crear las variables necesarias- Programar las colisiones entre personajes- Programar el “Empuje” de los objetos- Establecer la zonas de cada BREED 3. Dibujar en el SPACELAND4. Probar5. Nuevas ideas y problemas propuestos.

Programando

IDEAS

- Deberemos delimitar unas zonas para cada familia (BREEDS), de esta forma podremos saber si los objetos han sido llevados adecuadamente a la zona de SU familia, o sí por el contario han sido llevados a zonas de familias diferentes.

- Para “Empujar” a los objetos deberemos programar en la colisión entre el “Jugador” y dichos objetos, que éstos últimos se dirijan en la dirección que avanza el “Jugador”.

- Se crearán 9 objetos en total, 3 de cada familia. Para lograr ubicarlos al azar, aunque limitados a una región específica en el SPACELAND, se utilizará de nuevo el concepto de “Recursividad” explicado en el ejemplo anterior.

Page 84: Juegos en Starlogo TNG - Cuarta parte del libro

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

Juego 18: Cada uno en su lugar

Se han creado cuatro familias (Breeds) de personajes: “Jugador”, “Bolas”, “Pirámides” y “Cubos” y se han escogido las formas que se muestran en la imagen superior. La imagen inferior muestra una visión general y anticipada de toda la programación del juego en el CANVAS. En cada sección se han creado los procedimientos correspondientes al comportamiento de cada personaje. Se han usado todas las secciones del CANVAS y en donde se encuentra la mayor cantidad de bloques es en las regiones correspondientes a los objetos (Bolas, Pirámides y Cubos)

Page 85: Juegos en Starlogo TNG - Cuarta parte del libro

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

Juego 18: Cada uno en su lugar

En la región “Set up” se han creado y ubicado todos los personajes del juego. Para el “Jugador” se ha cambiado la longitud y el grosor de su forma para que luzca como un bate.

La ubicación de los objetos en su eje “X” está controlada por medio del procedimiento “Disponer”, en el cual usamos, otra vez, el concepto de “Recursividad”. La posición en el eje “Y” sí se establece de una manera fija.

Finalmente se muestra el SCORE o puntaje y se inicializa con el valor de cero.

Page 86: Juegos en Starlogo TNG - Cuarta parte del libro

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

Juego 18: Cada uno en su lugar

Este es el procedimiento “Disponer”, creado en la región “Everyone” del CANVAS para que pueda ser usado por cualquier personaje dentro del juego. Permite que el tamaño de un objeto se ajuste a 2 y que su coordenada “X” se establezca al azar. Cuando se crean varios personajes, entonces cada uno tendrá una posición “X” diferente, sin embargo, si se detectan personajes en un rango de 3 pasos (Smell radius 3> 0), el procedimiento se ejecuta de nuevo hasta que la condición sea falsa.

Cuando la condición no puede llegar a un valor falso, StarLogo TNG terminará bloqueándose pues tratará de responder con lo que se le ha pedido y será necesario reiniciar el programa.

En la región “Jugador” del CANVAS se ha creado el procedimiento “Mover”, el cual permite el desplazamiento de este personaje por el SPACELAND, de igual forma a como se ha hecho en varios de estos juegos.

El personaje “Jugador” tiene en este juego una forma a la cual se ha ajustado su ancho (Width) y su largo (Length), por tanto se ve como una barra alargada que simula un palo o bate.

Page 87: Juegos en Starlogo TNG - Cuarta parte del libro

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

Juego 18: Cada uno en su lugar

Este procedimiento llamado “CaerBolas” creado en la región “Bolas” del CANVAS se encarga de verificar si este personaje ha sido llevado a la zona acordada. Cuando esto sucede, el puntaje (SCORE) se incrementa en 5 puntos, desaparece la “Bola” y se pide al personaje “Jugador” (Ask agent ID=0) que vaya hasta la posición central del terreno (HOME). Asimismo, si este mismo personaje “Bolas” es llevado a las zonas de los objetos “Pirámides” y “Cubos”, entonces el SCORE se disminuye en 2 puntos, se despliega un mensaje y la “Bola” es llevada a la posición central.

Page 88: Juegos en Starlogo TNG - Cuarta parte del libro

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

Juego 18: Cada uno en su lugar

Para verificar que el personaje “Bolas” ha sido llevado al lugar correcto, su posición se compara con un rango de coordenadas establecidas. Así que será necesario primero dibujar las zonas en el SPACELAND y con base en ellas, establecer los rangos permitidos. En este ejemplo se ha dibujado una zona para las “Bolas” y éstas deben estar dentro de un rango “X” entre -42 y -36 y un rango “Y” entre 43 y 48. Para hacer el juego un poco más difícil se puede reducir el rango dado en los dos ejes, de esta forma el “Jugador” deberá ser mucho más cuidadoso a la hora de llevar las “Bolas” a su sitio.

Page 89: Juegos en Starlogo TNG - Cuarta parte del libro

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

Juego 18: Cada uno en su lugar

Para el caso del personaje “Pirámides” también se ha creado un procedimiento similar al anterior, con la diferencia de la zona a la cual debe llegar para asegurar los 8 puntos. El rango en este caso es: Coordenada “X” entre -2 y 4; rango “Y” entre 44 y 49.Es importante tener en cuenta que se está usando un BLOQUE AND dentro de la condición necesaria para que los bloques IF ejecuten las acciones, esto implica que para que la condición sea verdadera, las dos partes del bloque AND deben ser verdaderas, en otras palabras, que el objeto esté dentro del rango “X” y al mismo tiempo dentro del rango “Y”

Page 90: Juegos en Starlogo TNG - Cuarta parte del libro

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

Juego 18: Cada uno en su lugar

Page 91: Juegos en Starlogo TNG - Cuarta parte del libro

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

Juego 18: Cada uno en su lugar

Para el personaje “Rectángulos” también se ha creado un procedimiento que permite verificar si ha sido llevado a su zona. Al mismo tiempo penaliza al “Jugador” si ha llevado este objeto “Rectángulos” a las zonas de los “Cubos” ó “Pirámides”.

La imagen inferior muestra un bloque “Forever” colocado en la región “Runtime”, al cual se ha reemplazado su nombre por “Jugar”. Dentro de él se han colocado los cuatro procedimientos que controlan el comportamiento de cada personaje.

Page 92: Juegos en Starlogo TNG - Cuarta parte del libro

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

Juego 18: Cada uno en su lugar

Las instrucciones se han colocado en un bloque RUN ONCE que se ha colocado también en la región “Runtime” del CANVAS.

Page 93: Juegos en Starlogo TNG - Cuarta parte del libro

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

Juego 18: Cada uno en su lugar

Las colisiones entre el “Jugador” y los demás objetos hacen que éstos últimos asuman la dirección (HEADING ID=0) del “Jugador” y se muevan 5 pasos en esa misma dirección.La imagen inferior muestra el SPACELAND. Allí es necesario dibujar las 3 zonas ubicadas en la parte superior, utilizando colores y la opción de DEPRESIÓN ofrecida.

Page 94: Juegos en Starlogo TNG - Cuarta parte del libro

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

Estos bloques se encuentran en el CAJÓN “Traits” de la pestaña “Factory”. Permiten establecer en ancho (Width) y el largo (Length) de los agentes o personajes. En el ejemplo se utilizó para ajustar la dimensión del “Jugador” para que su forma se viera como un palo o bate que golpea a los objetos.

Este bloque se encuentra en el CAJÓN “Logic” de la pestaña “Factory”. Permite indicarle al personaje identificado con el ID asociado al lado derecho las acciones establecidas en la parte DO. En el ejemplo se utilizó para regresar al “Jugador” al centro del CANVAS (GO HOME) una vez que ha llevado a uno de los objetos a su posición.

Estos bloques se encuentran en el CAJÓN “Other Agent” de la pestaña “Factory”. Reporta la dirección (HEADING) del personaje identificado con el número asociado al lado derecho del bloque.

Bloques adicionales usados

PROBLEMAS PROPUESTOS

- Modifica el juego dibujando obstáculos en el terreno, haciendo más difícil el movimiento de los objetos en el SPACELAND.

- Mejora el juego, haciendo que los objetos solo puedan encajar en una dirección. Entonces para validar que un objeto ha quedado en su zona se deberá verificar su posición (Rango de coordenadas) y su direccionalidad (Heading).

- Intenta construir un juego sencillo de football con varios jugadores que traten de llevar una pelota hasta una meta. Se podría pensar también en otorgar el control al personaje más cercano a la pelota, es decir, la posibilidad de ser controlado mediante las flechas del teclado, solo si es el “Jugador” más cercano a la pelota, mientras los demás se mueven de forma al azar.

Juego 18: Cada uno en su lugar

Page 95: Juegos en Starlogo TNG - Cuarta parte del libro

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

Juego 19: Objetos escondidos

Crear un juego en donde el personaje principal deba encontrar tres objetos escondidos en el menor tiempo posible. A medida que el “Jugador” se desplaza por el SPACELAND recibirá mensajes de ayuda que le indicarán qué tan lejos o cerca se encuentra del objeto que está buscando. Cuando encuentre al primer objeto, éste deberá mostrarse y recibirá la ayuda para su siguiente búsqueda. Al final del juego deberá mostrarse el tiempo total invertido en la tarea.

? 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.2. Programar a los personajes:- Crear las variables necesarias- Crear a los objetos y esconderlos al azar- Programar el movimiento del “Jugador”- Crear un sistema de detección: Radar- Usar el “Radar” para buscar los objetos- Configurar las colisiones- Mostrar el tiempo final3. Probar4. Nuevas ideas y problemas propuestos.

Programando

IDEAS

- Deberemos usar las propiedades “HIDE AGENT” y “SHOW AGENT” (Ocultar y mostrar el agente). Al inicio los tres objetos estarán ocultos y a medida que el “Jugador” los vaya encontrando cambiarán su propiedad a “Show Agent”

- Se deberá desarrollar un sistema de detección o “Radar” que pueda ser usado por el “Jugador”. Este sistema mostrará cinco mensajes de ayuda: “Muy muy lejos”, “Estás lejos”, “Mas o menos”, “Cerca” y “Muy cerca”, dependiendo del grado de cercanía con el objeto escondido. El mismo “Radar” se usará para encontrar, uno a uno, los 3 objetos. Por esta razón el sistema debe permitir la selección de cuál objeto se quiera buscar.

- Al final del juego, es decir, cuando el “Jugador” haya encontrado los tres objetos, se deberá indicar mediante un mensaje y también indicar el tiempo invertido. Aquí deberemos buscar la forma de congelar el reloj y mostrarlo.

Page 96: Juegos en Starlogo TNG - Cuarta parte del libro

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

Juego 19: Objetos escondidos

Se han creado cuatro familias (Breeds) de personajes: “Jugador”, “Bolas”, “Pirámides” y “Cubos” y se han escogido las formas que se muestran en la imagen superior. La imagen inferior muestra una visión general y anticipada de toda la programación del juego en el CANVAS. En cada sección se han creado los procedimientos correspondientes al comportamiento de cada personaje. Se han usado todas las secciones del CANVAS. Esta parte es idéntica al juego anterior en donde se usaron la misma cantidad de personajes.

Page 97: Juegos en Starlogo TNG - Cuarta parte del libro

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

Juego 19: Objetos escondidos

En la sección “Set up” se han creado dos de los cuatro personajes del juego: Un “Jugador” y una “Bola”, la cual estará oculta al inicio (hide agent). Los dos personajes restantes se crearán durante la ejecución del juego, a medida que el “Jugador” vaya encontrando los objetos. Los últimos bloques inicializan a cero las cuatro variables de tipo numérico compartidas que han sido previamente creadas: “ContarBolas”, “ContarPirámides”, “ContarCubos” y “Conteo”. Finalmente se muestra el reloj (CLOCK) y se ubica la “Bola” en una posición al azar (Scatter Bolas).

Page 98: Juegos en Starlogo TNG - Cuarta parte del libro

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

Juego 19: Objetos escondidos

En la región “Jugador” se ha creado este procedimiento llamado “Mover”, el cual permite el desplazamiento de este personaje, así como la ejecución del procedimiento “Radar” (Que se explicará más adelante). La condición necesaria para que el procedimiento “Radar” se ejecute, es que las variables “ContarBolas”, “ContarPirámides” y “ContarCubos” se encuentren en CERO. Recordemos que esto se hizo en el bloque “Set up” explicado en la página anterior, sin embargo, al inicio del juego solo está presente la “Bola”, por tanto el “Radar” solo podrá detectar a dicho personaje

Page 99: Juegos en Starlogo TNG - Cuarta parte del libro

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

Juego 19: Objetos escondidos

Dejaremos la explicación del “Radar” para unas hojas más adelante. Por ahora expliquemos este procedimiento llamado “CrearPiramide” realizado en la región “Bolas” del CANVAS. Cuando el “Jugador” encuentre la “Bola” (Colisión) pasarán varias cosas: El “Jugador” se moverá a un lugar al azar, la “Bola” se mostrará de color rojo y la variable “ContarBolas” se incrementará en 1. Cuando esto último suceda el personaje “Bola” podrá ejecutar su procedimiento “CrearPirámide” (Imagen inferior). Este procedimiento se encarga de CREAR o GENERAR (Hatch do) al personaje “Pirámides”, esconderlo y colocarlo en un lugar al azar. Al mismo tiempo la variable “ContarBolas” se volverá a incrementar en 1, haciendo que sea imposible volver a ejecutar nuevamente el procedimiento. En consecuencia, solamente podrá generarse 1 personaje de la familia “Pirámides”.

Finalmente otra de las variables creadas, “Conteo” se colocará con valor 2.

Page 100: Juegos en Starlogo TNG - Cuarta parte del libro

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

Juego 19: Objetos escondidos

Esta parte es similar a la explicación anterior. Cuando se presente la colisión entre el “Jugador” y la “Pirámide”, es decir, cuando el jugador haya encontrado el segundo objeto deberán pasar varias acciones: El “Jugador” será llevado a un sitio al azar, la “Pirámide” se mostrará y la variable “ContarPirámides” se incrementará en 1. (Recordemos que al inicio del juego su valor era CERO). Cuando esto último pasa, el personaje “Pirámides” puede ejecutar su procedimiento “CrearCubo” y entonces hará que se genere a 1 solo personaje de la familia “Cubos”, en una posición al azar, de color azul e invisible. Para impedir que se generen más “Cubos”, dentro del mismo procedimiento se incluye el incremento en 1 de la variable “ContarPirámides” (Que ahora debería tener como valor 2). El procedimiento termina haciendo que la variable “Conteo” se coloque con valor 3.

Page 101: Juegos en Starlogo TNG - Cuarta parte del libro

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

Juego 19: Objetos escondidosLa colisión con el último objeto

(“Cubos”) hace que el “Jugador” se vaya al centro y que el cubo se muestre. También incrementa en 1 la variable “ContarCubos”, lo cual hace que se deje de ejecutar el procedimiento “Tiempo” y por tanto se muestre por unos segundos más el mensaje “Mi tiempo fue” con el valor del reloj congelado.

Page 102: Juegos en Starlogo TNG - Cuarta parte del libro

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

Juego 19: Objetos escondidos

El procedimiento “Radar” ha sido creado en la región “Everyone” para que pueda ser usado por cualquier BREED en el juego. En este caso es el “Jugador” quien hará uso de él. Su función es la de desplegar diferentes mensajes, dependiendo de la cercanía entre el “Jugador” (o cualquier otro personaje que haga uso del procedimiento) y el personaje identificado con el número que tenga la variable “Conteo”.

Al inicio del juego la varible “Conteo” ha sido inicializada en 1 y el personaje identificado con este número (ID) es la “Bola”, por lo tanto el “Radar” detectará a este personaje primero. La idea principal del procedimiento es COMPARAR la posición (Coordenadas “X” y “Y”) del “Jugador” contra la posición del otro personaje (Primero la “Bola”, luego la “Pirámide” y finalmente el “Cubo”). Para determinar si los dos personajes están muy cerca se utiliza un bloque IF-ELSE y para su condición se hace la resta, en valor absoluto, de las coordenadas “X” y de las coordenadas “Y” por separado, cuando estas dos restas sean menor a 5 pasos se desplegará el mensaje correspondiente “MUY MUY CERCA”. En las partes “ELSE” de los bloques IF se van anidando más bloques IF-ELSE como se muestra en la imagen.Si la resta de coordenadas está entre 5 y 10, los dos personajes están “CERCA”Si la resta de coordenadas está entre 10 y 30, los dos personajes están “MAS O MENOS”Si la resta de coordenadas está entre 30 y 60, los dos personajes están “LEJOS”

Si la resta de coordenadas está es mayor a 60 los personajes están “MUY MUY LEJOS”

Page 103: Juegos en Starlogo TNG - Cuarta parte del libro

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

Juego 19: Objetos escondidos

Finalmente dentro de un bloque “Forever” con el nombre de “Jugar” se colocan los procedimientos descritos.

En esta misma sección “Runtime” de CANVAS se incluye un bloque RUN ONCE con las instrucciones del juego.

La imagen en la siguiente página muestra una vista del SPACELAND en donde el “Jugador” ya ha encontrado a la “Bola” y trata de buscar a la “Pirámide”, siguiendo los mensajes de ayuda que aparecen.

Todos los bloques IF-ELSE del procedimiento “Radar” tienen en su condición un bloque AND, que verifica si las DOS restas de coordenadas son verdaderas. Solo cuando las dos restas planteadas son verdaderas se ejecutan las acciones asociadas en la parte THEN de los bloques, cuando la condición no es verdadera, las acciones que se ejecutan son las que aparecen dentro de la parte ELSE de los bloques.

Al inicio del juego el “Radar” detectará a la “Bola” (ID=1). Cuando el “Jugador” encuentra a la “Bola” , se genera el personaje “Pirámide” y la variable “Conteo” se coloca en 2. En este momento el “Radar” empezará a detectar a este personaje (ID=2). Finalmente cuando la “Pirámide” ha sido encontrada, se genera al “Cubo” y la variable “Conteo” se coloca en 3,

permitiendo que el “Radar” detecte ahora al personaje con el ID=3, es decir, el “Cubo”.

Page 104: Juegos en Starlogo TNG - Cuarta parte del libro

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

Juego 19: Objetos escondidos

PROBLEMAS PROPUESTOS

- Incluye más elementos que deban ser encontrados por el “Jugador”, también incluye objetos que sean “Peligrosos” y que no se puedan tocar.

- Afina la sensibilidad del “Radar”, estableciendo muchas más regiones de detección, con base en la distancia entre los dos personajes.

- Aumenta la dificultad del juego haciendo que los objetos ocultos cambien de posición después de cierto tiempo (Algunos segundos).

- Intenta construir un “Radar” con ayuda de los bloques “Smell with” y compara el funcionamiento de los dos métodos.

Page 105: Juegos en Starlogo TNG - Cuarta parte del libro

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

Juego 20: Salta y llega a la meta

Crear un juego en donde el personaje principal deba recorrer un trayecto por el cual se desplazan objetos en sentido contrario. El “Jugador” deberá tener la habilidad de saltar, avanzar y retroceder, aunque no podrá salirse de su ruta.

El objetivo para el “Jugador” será llegar al final del recorrido, evitando tocar a los objetos, pues morirá si esto pasa. Su movimiento deberá ser controlado solo por 3 teclas: Las flechas “arriba” y “abajo”, y la barra espaciadora. para saltar.

? 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.2. Programar a los personajes:- Crear las variables necesarias- Crear y ubicar al “Jugador”- Programar el movimiento de los objetos- Programar el comportamiento del “Jugador”: Movimiento, salto y meta.3. Probar4. Nuevas ideas y problemas propuestos.

Programando

IDEAS

- Crearemos dos variables, una para el “Jugador” y otra para los objetos. Esta variable se encargará de contar el número de pasos que han avanzado los personajes. Dependiendo se su valor, los personajes girarán hacia una dirección y también morirán. Será como una variable de “EDAD” que servirá además para generar “Nuevos” objetos, una vez que hayan desaparecido los objetos “Viejos”.

- Uno de los primeros problemas a resolver será la forma como se generarán los objetos y la cantidad de ellos. Para controlar esto usaremos variables que guaradarán la cantidad de pasos que han recorrido los personajes y también la cuenta del reloj (CLOCK)

- La programación del salto del personaje puede ser realizada de una forma sencilla, con ayuda de los bloques “Set altitude” y “Yield”.

Page 106: Juegos en Starlogo TNG - Cuarta parte del libro

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

Juego 20: Salta y llega a la meta

Para este juego solo se han creado dos familias de personajes (BREEDS): El “Jugador” y los “Bloques”. La imagen inferior muestra una visión anticipada de toda la programación en el CANVAS. La mayor cantidad de bloques se encuentran precisamente en las regiones de los dos personajes. En estas regiones se han creado los procedimientos que se encargan de mover a los personajes.

Page 107: Juegos en Starlogo TNG - Cuarta parte del libro

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

Juego 20: Salta y llega a la meta

En la región “Set up” se ha creado un solo personaje de cada familia, es decir, un solo “Bloque” y un solo “Jugador”, igualmente se han ubicado en sectores opuestos del SPACELAND. También se han inicializado las dos variables azules “Pasos” y “PasosJugador” a CERO. Los últimos dos bloques se encargan de mostrar en reloj y reiniciarlo.

Page 108: Juegos en Starlogo TNG - Cuarta parte del libro

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

Juego 20: Salta y llega a la meta

Esta es la primera parte del procedimiento “Mover”, creado en la región “Bloques” del CANVAS. Permite el desplazamiento del “Bloque” con base en movimientos hacia adelante y el cambio de dirección (Heading) cada cierta cantidad de pasos. Aquí es donde entra en juego la variable “Pasos” la cual se va incrementando en la misma cantidad de pasos que el desplazamiento, es decir, 5.La dirección de los bloques es ajustada de acuerdo a la cantidad de pasos, ó al valor de la variable. Por ejemplo, el bloque iniciará su movimiento y cuando haya recorrido 25 pasos girará en la dirección 270°, cuando haya recorrido 105 pasos girará en la dirección 180°, cuando haya recorrido 130 pasos girará en la dirección 90° y así sucesivamente como muestra la imagen.Lo que se intenta hacer es que el “Bloque” siga el camino de color amarillo dibujado en el SPACELAND.

Page 109: Juegos en Starlogo TNG - Cuarta parte del libro

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

Juego 20: Salta y llega a la meta

Esta es la segunda parte del procedimiento “Mover”. Las acciones que se ejecutan son las siguientes: Cuando el “Bloque” haya recorrido 340 pasos, es decir, cuando haya llegado al final del camino amarillo desaparecerá, pero al mismo tiempo GENERARÁ un nuevo “Bloque”, en el principio del camino y ajustará la variable “Pasos” de ese nuevo bloque creado a CERO. Esto es importante ya que cuando se utiliza el bloque HATCH-DO para crear personajes, éstos heredan las propiedades del personaje que los creó. Los bloques REPEAT e IF del final del procedimiento permiten controlar el número de “Bloques” que se van a GENERAR, y limitan su cantidad a 6 como máximo. Para lograr esto se solicita al primer personaje “Bloque” que repita (REPEAT) cinco veces la “Generación” (Hatch) de “Bloques”, con un tiempo de 5 segundos entre cada uno. Estas acciones solo las podrá realizar siempre y cuando existan menos de 6 “Bloques (Count Bloques < 6) y el reloj sea igual a cinco segundos. Con cada “Creación” de bloques (Hasta que existan 6 bloques) el reloj se reinicia a cero.

Page 110: Juegos en Starlogo TNG - Cuarta parte del libro

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

Juego 20: Salta y llega a la meta

Esta es la primera parte del procedimiento “Caminar”, creado en la región “Jugador” del CANVAS. Permite el desplazamiento de este personaje por el camino amarillo, con ayuda de las flechas “Arriba” y “Abajo” del teclado. Es un procedimiento similar al explicado antes. Nuevamente se utiliza una variable que almacena el número de pasos que el “Jugador” ha recorrido (“PasosJugador”). Cada vez que se presiona la flecha arriba se incrementa el valor de la variable en 1 y con la flecha abajo se disminuye su valor también en 1, haciendo que el “Jugador” pueda moverse adelante y atrás. El control de dirección (Heading) está de nuevo en manos de la variable. Por ejemplo, cuando el “Jugador” ha recorrdio 25 pasos girará en la dirección 90°, cuando haya recorrido 105 pasos girará en la dirección 0° y así sucesivamente hasta llegar al final del camino amarillo, como muestra la imagen

Page 111: Juegos en Starlogo TNG - Cuarta parte del libro

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

Juego 20: Salta y llega a la meta

La segunda parte del procedimiento “Caminar” se encarga de desplegar el mensaje “Llegué a la meta” cuando el “Jugador” ha recorrido 340 pasos. Igualmente permite que este personaje “Salte”, esto se logra con ayuda de los bloques “Set altitude” en combinación con un par de bloques “Yield”, los cuales ayudan a disminuir la velocidad con que se ejecutan estas acciones. La condición necesaria para ejecutar este “Salto” es que se presione la barra espaciadora (Space bar)

Finalmente en la región “Runtime” del CANVAS se utiliza un bloque “Forever”, al cual se ha reemplazado su nombre por “Jugar”. En su interior se han colocado los dos procedimientos indicados.

También se ha usado un bloque RUN ONCE en donde se han incluido las instrucciones del juego, a través de los bloques de texto asociados.

Page 112: Juegos en Starlogo TNG - Cuarta parte del libro

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

Juego 20: Salta y llega a la meta

PROBLEMAS PROPUESTOS

- Incluye un truco de “Invencibilidad” para el “Jugador”, de forma que lo pueda usar en algunas oportunidades durante el recorrido.

- Realiza un recorrido más largo incrementando la dificultad del juego.

- Piensa en una forma de lograr que los bloques sigan un camino, pero a través de un método diferente al usado en este ejemplo. Cuando lo logres ponlo en práctica creando más juegos.

- Intenta simular un juego comercial parecido, como “Donkey Kong”

En la región “Collisions” se incluye el bloque de indicado en la imagen, así cuando el “Jugador” y los “Bloques” se toquen, el “Jugador” morirá y perderá la opción de ganar el juego.En el SPACELAND es necesario dibujar el camino amarillo mostrado, haciendo que el recorrido coincida con la cantidad de pasos indicados en los procedimientos.