Sie sind auf Seite 1von 112

Cap

CAPTULO IV

Juegos segunda parte Uso de variables: Variables numricas, booleana, de listas, de texto, variables compartidas y variables de agentes. Nuevos bloques de programacin Ideas creativas Problemas planteados

Juegos en StarLogo TNG - Juan Javier Guampe - 2012

Pgina 116

Juego 11: Congelados

Problema

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. Despus de 60 segundos se deber indicar quin ha ganado el juego, con base en el nmero de personas congeladas

1. Preparar las condiciones iniciales: - Eliminar las dos tortugas de inicio - Crear los personajes del juego (Breeds) - Ajustar las propiedades de cada personaje: Posicin, tamao, 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. Probar 4. Nuevas ideas y problemas propuestos.

Plan

Programando

IDEAS
- Podemos tomar algunos elementos del juego anterior, por ejemplo, la persecucin 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 ejecucin del juego por 60 segundos podemos usar un bloque RUN que ofrece la opcin de tiempo, es similar al bloque Forever aunque limitado al tiempo que se establezca. Despus de estos 60 segundos deberemos contar a las personas que estn congeladas y con base en esta informacin determinar quin gan el juego.

Juegos en StarLogo TNG - Juan Javier Guampe - 2012

Pgina 117

Juego 11: Congelados

Comentarios

Para este juego se crearn 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 programacin final en el CANVAS, aqu se puede ver claramente que hay tres procedimientos, uno para cada uno de los personajes (Jugador, Personas y Congelador), tambin una configuracin inicial en la seccin Setup, los bloques de colisin en la seccin Collisions y solo unos pocos bloques en la seccin Runtime.

Juegos en StarLogo TNG - Juan Javier Guampe - 2012

Pgina 118

Juego 11: Congelados


Comentarios

Esta parte se realiza en la seccin Setup del CANVAS. Aqu se han creado tres grupos de personajes: 1 Jugador 10 Personas 3 Congeladores Tanto el Jugador como las personas han sido coloreadas al inicio, para lo cual ha sido necesario remover su mscara (Model skin off). En el bloque correspondiente a la creacin de las Personas se ha inciado una variable llamada congelado? con una valor inicial falso (False). Esta variable ha sido creada previamente en la seccin 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.

Juegos en StarLogo TNG - Juan Javier Guampe - 2012

Pgina 119

Juego 11: Congelados


Comentarios

En la pgina anterior se muestra tambin una imagen con una pequea programacin realizada en la seccin 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 pgina ensea el procedimiento perseguir realizado en la seccin 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 nmeros de identificacin de las Personas (IDs) que detecte el Congelador a medida que camina por el Spaceland. Esta deteccin es posible gracias al bloque Smell list with que reporta los nmeros de identificacin de los agentes que se encuentren en el radio establecido (Para este caso 10 pasos) y que cumplan con la condicin (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 nmeros sea mayor a cero (Length>0), el Congelador ir detrs de aquella primera (First) persona detectada. De lo contrario, es decir, cuando no se haya detectado a nadie todava y no haya ningn nmero en la variable, el Congelador deambular por el SPACELAND con movimientos a la derecha, izquierda y hacia adelante.
Juegos en StarLogo TNG - Juan Javier Guampe - 2012

Pgina 120

Juego 11: Congelados

Comentarios

La imagen que se muestra en las siguientes dos pginas, si bien es un poco grande, es bastante simple de entender, corresponde al procedimiento llamado Caminar que se realiza en la seccin 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 ejecucin 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 estn congeladas (Color azul). Cuando estos nmeros son iguales se mostrar un mensaje de Empate, cuando haya ms 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 quin ha sido el ganador. Pgina 121

Juegos en StarLogo TNG - Juan Javier Guampe - 2012

Juego 11: Congelados

Comentarios

El bloque Jugar en la siguiente pgina es un bloque RUN con la opcin 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 pgina 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.
Pgina 122

Juegos en StarLogo TNG - Juan Javier Guampe - 2012

Juego 11: Congelados

Juegos en StarLogo TNG - Juan Javier Guampe - 2012

Pgina 123

Juego 11: Congelados

Comentarios

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 comportndose de acuerdo con la programacin realizada.

Bloques adicionales usados


Este bloque se encuentra en el CAJN Sounds de la pestaa 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 cajn Sounds de la pestaa Factory

Juegos en StarLogo TNG - Juan Javier Guampe - 2012

Pgina 124

Juego 11: Congelados

- 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 sera 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 cuntas personas estn siendo congeladas.

PROBLEMAS PROPUESTOS

Juegos en StarLogo TNG - Juan Javier Guampe - 2012

Pgina 125

Juego 12: Jugador vs Computador

Problema

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 podrn disparar sus balas y se deber indicar mediante un mensaje quin fue el ganador.

1. Preparar las condiciones iniciales: - Eliminar las dos tortugas de inicio - Crear los personajes del juego (Breeds) - Ajustar las propiedades de cada personaje: Posicin, tamao, 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 colisiones 3. Probar 4. Nuevas ideas y problemas propuestos.

Plan

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 podrn 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 quin ha dado en el blanco. - El nmero total de Breeds o personajes en el juego ser de cinco: Jugador=1 Computador=1 Objetivo=1 BalasComputador=1 BalasJugador=1
Pgina 126

Juegos en StarLogo TNG - Juan Javier Guampe - 2012

Juego 12: Jugador vs Computador

Comentarios

Se han creado los cinco personajes descritos en la pgina anterior y se han escogido las formas mostradas en la imagen. La imagen inferior muestra una visin general de toda la programacin en el CANVAS. Se han creado procedimientos para cada uno de los personajes e igualmente se ha usado una variable compartida colocada en la regin Everyone, tambin se han colocado unos bloques ms en la seccin de colisiones.

Juegos en StarLogo TNG - Juan Javier Guampe - 2012

Pgina 127

Juego 12: Jugador vs Computador

Comentarios

En la regin Setup se ha creado la configuracin inicial, es decir, la disposicin de los tres personajes en el SPACELAND. Tambin se ha creado una variable llamada Ganador de tipo Shared text en la regin 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 ms sentido a la hora de jugar.
Juegos en StarLogo TNG - Juan Javier Guampe - 2012

Pgina 128

Juego 12: Jugador vs Computador

4
Juegos en StarLogo TNG - Juan Javier Guampe - 2012

Pgina 129

Juego 12: Jugador vs Computador

Este es el procedimiento mueveydispara realizado en la regin Jugador del CANVAS. Se ha usado el bloque Set X para ajustar su posicin en el eje X, incrementando y disminuyendo su valor cada vez que se presionan las flechas de izquierda y derecha. Tambin se ha configurado la barra espaciadora para que lance bolas, siempre y cuando el personaje con el nmero de identificacin= 1 (ID=1) est vivo. Este personaje corresponde al Objetivo que se encuentra ubicado en la mitad del SPACELAND.

Comentarios

Comentarios

Este procedimiento llamado mueveobjetivo se realiza en la regin Objetivo del CANVAS. Su funcin 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 difcil predecir su posicin. El desplazamiento de este personaje tambin se ha limitado a una regin especfica 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

Comentarios

Este procedimiento llamado muevebala realizado en la regin 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 desplazarn hacia adelante (Forward) a una velocidad de 10 pasos y una vez alcancen la coordenada Y=15 desaparecern pues en ese punto ya no hay posibilidad de dar en el blanco que se encuentra sobre la coordenada Y=0

Este procedimiento es muy similar al anterior, est realizado en la regin BalasComputador y tiene por nombre MuevebalasPC. Esta parte de la programacin se encarga del desplazamiento de las balas que lanza el personaje Computador. El movimiento de estas balas ser hacia adelante con respecto a la posicin desde la cual se disparen y ya que el Computador est orientado hacia abajo las balas se desplazarn de arriba hacia abajo. Las balas desaparecern cuando alcance una coordenada Y menor a -15

Juegos en StarLogo TNG - Juan Javier Guampe - 2012

Pgina 130

Juego 12: Jugador vs Computador

Comentarios

Este procedimiento llamado SeguiryDisparar se realiza en la regin 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 nmero 1 (ID=1). La segunda funcin es la de disparar las BalasComputador de forma automtica, es decir, sin la necesidad de presionar ninguna tecla del teclado. Sin embargo, para que pueda disparar estas balas se debe cumplir la condicin establecida en la parte test del bloque IF. Esta condicin 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 ms balas. Como los procedimientos son realizados a una gran velocidad en StarLogo TNG, es necesario pausar un poco la ejecucin de estas acciones. Esta es la funcin del bloque YIELD, en este procedimiento se han usado dos de ellos para pausar mucho ms las acciones. Finalmente se ha dispuesto que sea este personaje quien muestre los mensajes que tiene la variable de texto Ganador.
Juegos en StarLogo TNG - Juan Javier Guampe - 2012

Pgina 131

Juego 12: Jugador vs Computador


Comentarios

El bloque Jugar corresponde a un bloque Forever colocado en la regin Runtime del CANVAS. Dentro de cada seccin 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. Tambin se han colocado dos bloques de sonido y ajustado la variable de texto con las palabras EL JUGADOR y EL COMPUTADOR

Juegos en StarLogo TNG - Juan Javier Guampe - 2012

Pgina 132

Juego 12: Jugador vs Computador

Comentarios

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.

Juegos en StarLogo TNG - Juan Javier Guampe - 2012

Pgina 133

Juego 12: Jugador vs Computador

Bloques adicionales usados


Este bloque se encuentra en el CAJN Logic de la pestaa Factory. Este bloque permite pausar la ejecucin 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 ms lento. En el ejemplo se utiliz para hacer que el personaje Computador persiga al Objetivo y dispare las balas ms lentamente. Este bloque se encuentra en el CAJN Other Agents de la pestaa Factory. Si el personaje identificado con el nmero 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 CAJN Variables de la pestaa 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.

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 ms difcil de predecir y por ende ms difcil de ser alcanzado por las balas. - Intenta crear o generar a otro Objetivo cuando ste sea alcanzado por una bala y as extender la duracin del juego. Igualmente intenta incluir un puntaje o SCORE para los dos personajes que disparan, de esta forma se podr saber cmo va el desempeo de cada uno y despus de cierto tiempo, poder declarar a un ganador basado en el nmero de veces que atin y pudo darle al Objetivo

Juegos en StarLogo TNG - Juan Javier Guampe - 2012

Pgina 134

Juego 13: Juego de mesa con dados

Problema

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 nmero de los dados y los premios y castigos que los jugadores deben respetar.

1. Preparar las condiciones iniciales: - Eliminar las dos tortugas de inicio - Crear los personajes del juego (Breeds) - Ajustar las propiedades de cada personaje: Posicin, tamao, 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 castigos 3. Dibujar en el SPACELAND 4. Probar 5. Nuevas ideas y problemas propuestos.

Plan

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 emulacin de los dados, la cual se puede conseguir con ayuda del bloque RANDOM (Al azar) y una variable compartida de tipo numrica. - 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 nmero generado al azar (El lance de los dados). - Cuando se dibuje las zonas en el SPACELAND stas debern tener un ancho de 1 paso, ya que el nmero al azar (Los dados) puede ser entre 1 y 12. Aqu se deber ser cuidadoso a la hora de usar las herramientas de dibujo.

Juegos en StarLogo TNG - Juan Javier Guampe - 2012

Pgina 135

Juego 13: Juego de mesa con dados

Comentarios

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 visin anticipada de toda la programacin 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 regin Everyone. Tambin se observa que no hay bloques en la seccin de colisiones.

Juegos en StarLogo TNG - Juan Javier Guampe - 2012

Pgina 136

Juego 13: Juego de mesa con dados

Comentarios

En la regin Setup se han creado y ubicado a los dos personajes del juego, tambin se ha iniciado una variable numrica compartida (Azar) con el valor de cero. Recordemos que debemos crear esta variable antes, en la seccin Everyone. En la parte inferior se ve un procedimiento llamado Recorrer realizado en la seccin Everyone. Para poder explicarlo mejor se ha dividido en partes que se muestran en la siguiente pgina.

Juegos en StarLogo TNG - Juan Javier Guampe - 2012

Pgina 137

Juego 13: Juego de mesa con dados

Este procedimiento ser usado por los dos jugadores y por eso se crea en esta regin. La idea principal es mover a los personajes con base en el nmero generado al azar, aunque teniendo en cuenta la posicin en donde estn para que puedan girar en las esquinas.

Antes de mover al personaje tenemos que preguntarnos si su coordenada (Y X), sumada al nmero al azar (Dados) resulta en un valor superior a 50, el cual es el lmite 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 despus un giro de 90.

Juegos en StarLogo TNG - Juan Javier Guampe - 2012

Pgina 138

Juego 13: Juego de mesa con dados

Comentarios

Otro elemento a tener en cuenta en el procedimiento anterior es la direccin (Heading)que tienen los jugadores, pues esta informacin permite conocer sobre cul de los lados se mueve el jugador y as tomar la decisin de girar o no, dependeindo del valor generado al azar (Los dados). En la regin del Jugador1 se ha creado el procedimiento Zonas1 que controla los premios y castigos a medida que el jugador va recorriendo el tablero. Posteriormente en el SPACELAND deberemos dibujar zonas con estos mismos colores.

Juegos en StarLogo TNG - Juan Javier Guampe - 2012

Pgina 139

Juego 13: Juego de mesa con dados

Comentarios

En la regin del Jugador2 se ha creado un procedimiento llamado Zonas2 que bsicamente 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.

Juegos en StarLogo TNG - Juan Javier Guampe - 2012

Pgina 140

Juego 13: Juego de mesa con dados

Comentarios

Esta parte de la programacin se ha realizado en la seccin 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 visualizacin 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 nmero al azar entre 1 y 12 (Random 12). Para hacer mover a cada jugador solo es necesario presionar el botn RUN ONCE correspondiente, el cual ejecutra 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 pgina tambin se han colocado en un bloque RUN ONCE y se ejecutan una sola vez cuando se presiona el botn, mostrando un mensaje de texto. El la ventana RUNTIME se pueden ver los cuatro botones que controlan el juego.

Juegos en StarLogo TNG - Juan Javier Guampe - 2012

Pgina 141

Juego 13: Juego de mesa con dados

Juegos en StarLogo TNG - Juan Javier Guampe - 2012

Pgina 142

Juego 13: Juego de mesa con dados

Comentarios

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 lneas de colores con un ancho de 1 paso, con ayuda de la herramienta rectngulo y de la vista en cuadrcula que ofrece Edit terrain. Las lneas han sido ajustadas para que coincidan con esta cuadrcula. Para conseguir este nivel de detalle se debe alternar entre la vista normal y la vista de cuadrcula, teniendo colorear varias veces tanto la lnea como el color de fondo y as obtener el ancho deseado.

Juegos en StarLogo TNG - Juan Javier Guampe - 2012

Pgina 143

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 ningn nmero al azar. Usa tambin una variable de texto para indicar esto, por ejemplo: No es tu turno an, Jugador1 debe lanzar, Jugador2 tiene dos turnos ms, etc.

Juegos en StarLogo TNG - Juan Javier Guampe - 2012

Pgina 144

Juego 14: Parqueando los carros

Problema

Crear un juego cuyo objetivo sea parquear adecuadamente cuatro vehculos 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 calificacin del conductor.

Plan
1. Preparar las condiciones iniciales: - Eliminar las dos tortugas de inicio - Crear los personajes del juego (Breeds) - Ajustar las propiedades de cada personaje: Posicin, tamao, 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 texto 3. Dibujar en el SPACELAND 4. Probar 5. Nuevas ideas y problemas propuestos.

Programando

- 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 condicin, de esta forma podremos transferir el control desde el Conductor hasta cada uno de los vehculos y visceversa, usando las mismas teclas de flechas. - Usaremos rangos de coordenadas especficos para determinar si un vehculo 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 usarn las colisiones entre el Conductor y los autos, as como la ubicacin adecuada en la zona de parqueo. - Los dibujos en el SPACELAND pueden ser realizados con cualquier programa grfico (Paint, Power Point, Illustrator, Photoshop, etc) e importados en StarLogo TNG a travs de la herramienta Image
Juegos en StarLogo TNG - Juan Javier Guampe - 2012

IDEAS

Pgina 145

Juego 14: Parqueando los carros

Comentarios

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 visin anticipada de toda la programacin 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 colisin.

Juegos en StarLogo TNG - Juan Javier Guampe - 2012

Pgina 146

Juego 14: Parqueando los carros

Comentarios

De cada una de las cinco familias se ha creado solamente a 1 personaje y se ha colocado en una posicin especfica 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 ms llamada Conductor? de tipo Shared number se inicializa con un valor de 1. Esta variable deber ser creada antes en la regin Everyone del CANVAS y servir para decidir quin se mover con las teclas de flechas (El conductor o alguno de los 4 autos)

Juegos en StarLogo TNG - Juan Javier Guampe - 2012

Pgina 147

Este es un procedimiento general llamado Reglas y se ha creado en la regin 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 (Obstculos). Tambin permite mostrar un mensaje de advertencia cuando se acerca a las Paredes del parqueadero.

Esta imagen muestra dos variables creadas en la regin Everyone, una llamada Conductor? de tipo numrica compartida y otra llamada Parqueado? de tipo Agent boolean. Tambin muestra un procedimiento con el nombre de Conducir que ha sido creado en la misma regin, con el objetivo de ser usado por cualquier personaje en en juego.

3
Juegos en StarLogo TNG - Juan Javier Guampe - 2012

Pgina 148

La imagen 3 muestra un bloque RUN ONCE ubicado en la regin Runtime del CANVAS, al cual se ha cambiado su nombre por el de Instrucciones. All se han escrito algunas lneas de texto con el objetivo del juego para ser mostradas cuando se presione dicho botn. La imagen 4 muestra un bloque RUN con opcin de tiempo (120 segundos), al cual tambin se ha cambiado su nombre por Jugar. Dentro de cada una de sus secciones se han colocado los procedimientos correspondientes. En las siguientes pginas se explicar cada uno de estos procedimientos con mayor detalle.

Juegos en StarLogo TNG - Juan Javier Guampe - 2012

Pgina 149

Juego 14: Parqueando los carros

Este es el procedimiento llamado ManejaCarro1 y ha sido creado en la regin 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 pgina 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.

Juegos en StarLogo TNG - Juan Javier Guampe - 2012

Pgina 150

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 posicin, 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 nmero de identificacin 4 (ID=4), que es el Conductor, que vaya al centro del terreno, adems 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.

Juegos en StarLogo TNG - Juan Javier Guampe - 2012

Pgina 151

Juego 14: Parqueando los carros

Juegos en StarLogo TNG - Juan Javier Guampe - 2012

Pgina 152

Juego 14: Parqueando los carros

Este procedimiento llamado ManejaCarro2 es muy similar al anterior. Se ha creado en la regin Carro2 del CANVAS y tiene como finalidad permitir el movimiento de este personaje, a travs 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 posicin 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 nmero 4, es decir, el Conductor, que se vaya a la posicin 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 condicin. Pgina 153

Juegos en StarLogo TNG - Juan Javier Guampe - 2012

Juego 14: Parqueando los carros

Juegos en StarLogo TNG - Juan Javier Guampe - 2012

Pgina 154

Juego 14: Parqueando los carros

Este es el procedimiento ManejaCarro3 creado en la regin 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.

Juegos en StarLogo TNG - Juan Javier Guampe - 2012

Pgina 155

Juego 14: Parqueando los carros

Juegos en StarLogo TNG - Juan Javier Guampe - 2012

Pgina 156

Juego 14: Parqueando los carros

Este es el procedimiento ManejaCarro4 creado en la regin 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.

Juegos en StarLogo TNG - Juan Javier Guampe - 2012

Pgina 157

Juego 14: Parqueando los carros

Juegos en StarLogo TNG - Juan Javier Guampe - 2012

Pgina 158

Juego 14: Parqueando los carros

Comentarios

Este es procedimiento que controla el comportamiento del Conductor, por tanto ha sido creado en esta misma regin 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 evaluacin 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 condicin se despliega un mensaje de felicitacin 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 tambin 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 indicndole que no hay ms tiempo y que adems es un psimo conductor. Esta es la parte ELSE del bloque IF-ELSE que anida a los dems.

Juegos en StarLogo TNG - Juan Javier Guampe - 2012

Pgina 159

Juego 14: Parqueando los carros


En la seccin 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 colisin, 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 adems 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 podra ser una buen idea para mejorar el juego, disminuir el puntaje cada vez que esto suceda.
Juegos en StarLogo TNG - Juan Javier Guampe - 2012

Pgina 160

Juego 14: Parqueando los carros

Juegos en StarLogo TNG - Juan Javier Guampe - 2012

Pgina 161

Juego 14: Parqueando los carros

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

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 obstculos. Para dibujar las zonas de parqueo es importante tener en cuenta el rango de coordenadas que se establecieron en el juego, sin embargo, estos nmeros pueden ser cambiados fcilmente. Las imgenes 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.
Pgina 162

Juegos en StarLogo TNG - Juan Javier Guampe - 2012

Juego 14: Parqueando los carros

Bloques adicionales usados


Este bloque se encuentra en el CAJN Traits de la pestaa 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 CAJN Traits de la pestaa 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 CAJN Logic de la pestaa Factory. Permite comparar si dos elementos son verdaderos. Solo cuando esto sucede reporta un valor verdadero, en ningn otro caso reporta este valor. Por ejemplo, si uno de los dos elementos es verdadero y el otro es falso, su respuesta an seguir siendo falsa. En el ejemplo se utiliz para verificar si los carros estaban en sus respectivas zonas de parqueo, comparando la posicin 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) deberan estar en los rangos establecidos. Solo en ente caso se podra avalar y aprobar la tarea del Conductor.

PROBLEMAS PROPUESTOS
- Modifica el juego para hacerlo mucho ms difcil: Reduce el rango de las coordenadas X y Y, haciendo que el proceso de parqueo tenga que ser realizado con mayor exactitud; crea ms obstculos; crea zonas de parqueo de diferente tamao, entre otras. - Modifica la programacin para hacer que los vehculos 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 sera una situacin muy grave en un parqueadero real. - Dibuja un parqueadero mucho ms complicado. Importa imgenes de la Internet, cralas en algn programa grfico y llvalas a StarLogo TNG.

Juegos en StarLogo TNG - Juan Javier Guampe - 2012

Pgina 163

Juego 15: Tiro al blanco

Problema

Crear un juego similar al del Tiro al blanco, en donde el jugador tenga que lanzar un proyectil y ste se mueva describiendo una parbola. La trayectoria del proyectil deber responder a las ecuaciones del tiro parablico 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.

Plan
1. Preparar las condiciones iniciales: - Eliminar las dos tortugas de inicio - Crear los personajes del juego (Breeds) - Ajustar las propiedades de cada personaje: Posicin, tamao, color, etc. 2. Programar a los personajes: - Crear las variables necesarias - Programar el tiro parablico del proyectil - Programar una tecla para el lanzamiento de un solo proyectil por blanco - Crear un puntaje con base en la posicin en donde han caido los proyectiles - Programar los mensajes de texto 3. Dibujar en el SPACELAND 4. Probar 5. Nuevas ideas y problemas propuestos.

Programando

- En StarLogo TNG podemos hacer la simulacin del movimiento de proyectiles, siguiendo las ecuaciones de la trayectoria del tiro parablico que podemos encontrar fcilmente 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 numricas compartidas (Shared number) para definir los valores de velocidad inicial y ngulo de lanzamiento. Estas variables sern controladas desde la ventana Runtime en el SPACELAND, a travs de un bloque de deslizamiento (SLIDER) que permitir ajustar los valores fcilmente con ayuda del mouse. - Usaremos otras dos variables. Una de ellas ser de tipo numrica compartida (Shared number) que permitir saber cuntos disparos ha realizado el Jugador y la otra de tipo texto, para que el Juez muestre algunos mensajes.
Pgina 164

IDEAS

Juegos en StarLogo TNG - Juan Javier Guampe - 2012

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 visin general y anticipada de toda la programacin del juego en el CANVAS. La mayor cantidad de bloques se encuentran en la regin Proyectil, all se encuentran definidas las cuatro variables y el procedimiento que hace que el proyectil describa un movimiento parablico.

Juegos en StarLogo TNG - Juan Javier Guampe - 2012

Pgina 165

Juego 15: Tiro al blanco

En la regin 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 especficos. Tambin 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 tambin mostrar las instrucciones al momento de empezar el juego.
Juegos en StarLogo TNG - Juan Javier Guampe - 2012

Pgina 166

Juego 15: Tiro al blanco

En la imagen superior se muestra el procedimiento Lanzar creado en la regin Jugador del CANVAS. Este procedimiento se encarga de GENERAR (HATCH-DO) al personaje Proyectil cuando se presione la barra espaciadora del teclado, tambin 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 regin 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 despus de que el Jugador ha completado los tres disparos.

Juegos en StarLogo TNG - Juan Javier Guampe - 2012

Pgina 167

Juego 15: Tiro al blanco


Este es el procedimiento Dispara creado en la regin Proyectil del CANVAS. En las siguientes pginas se mostrarn imgenes parciales con un mejor detalle. En esta regin tambin 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 dinmicamente, es decir, mientras est jugando. Antes de disparar deber ajustar estos valores.

Juegos en StarLogo TNG - Juan Javier Guampe - 2012

Pgina 168

Juego 15: Tiro al blanco

La trayectoria que describe un proyectil en un movimiento parablico puede ser establecida por medio de estas ecuacines . Como el tiempo es importante en las frmulas, siempre ser necesario reiniciar el reloj (CLOCK) con cada lanzamiento. Otro elemento a tener en cuenta es la dimensin del SPACELAND. Recordemos que el TERRENO, es decir, la regin de color verde tiene una extensin de 100 pasos en sus ejes X y Y. Deberemos tener en cuenta estos lmites a la hora de establecer un rango para la velocidad inicial, de otra forma el proyectil podra avanzar mucho ms de estas fronteras.
Juegos en StarLogo TNG - Juan Javier Guampe - 2012

Pgina 169

Juego 15: Tiro al blanco

Esta es la primera parte del procedimiento Dispara y se encarga especficamente de la simulacin del tiro parablico. 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 posicin al final del disparo y tambin 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)

Juegos en StarLogo TNG - Juan Javier Guampe - 2012

Pgina 170

Juego 15: Tiro al blanco

Otro elemento importante en la simulacin del tiro parablico es la ubicacin 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 ecuacin. De haberlo ubicado en la coordenada X=0, no hubisemos tenido que descontar nada, sin embargo, tampoco hubisemos aprovechado toda la extensin del terreno y hubisemos limitado el movimiento parablico de los proyectiles a solo 50 pasos, como mximo.

La seccin inferior del procedimiento Dispara se encarga del puntaje. La condicin necesaria para hacerlo es que el reloj (CLOCK) supere los siete segundos, el cual es un tiempo suficiente para cualquier lanzamiento parablico en esta simulacin. 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 ms lejos que los 100 pasos que tiene el terreno. Estos lmites 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

Juegos en StarLogo TNG - Juan Javier Guampe - 2012

Pgina 171

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, tambin se incrementar el SCORE (Excepto en la zona verde) y finalmente el proyectil desaparecer despus se unos segundos (Bloque YIELD)
Juegos en StarLogo TNG - Juan Javier Guampe - 2012

Pgina 172

Juego 15: Tiro al blanco

El bloque Jugar corresponde a un bloque Forever colocado en la seccin 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 condicin de la variable Intentos. Al inicio del juego esta variable tiene el valor 0 y el Jugador se encuentra listo para el primer disparo, despus de este disparo la variable cambia su valor a 1 y el Jugador ser llevado a una nueva posicin para disparar nuevamente, despus de este segundo disparo la variable cambia a 2 y el Jugador ser llevado a otra posicin para el disparo final. Pgina 173

Juegos en StarLogo TNG - Juan Javier Guampe - 2012

Juego 15: Tiro al blanco

Finalmente en el SPACELAND se debern dibujar los tres blancos como se indica en la imagen. La zona amarilla es la que otorga ms puntaje al Jugador. En este caso las imgenes de los blancos se han dibujado en un programa grfico sencillo (PAINT) y se han llevado a StarLogo TNG con ayuda de la herramienta de importacin 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 mximos de estas variable se escriben directamente sobre estos bloques (89 para el ngulo y 31 para la Velocidad)
Juegos en StarLogo TNG - Juan Javier Guampe - 2012

Pgina 174

Juego 15: Tiro al blanco

Bloques adicionales usados


Estos bloques se encuentran en el CAJN Math de la pestaa Factory. Permiten calcular en Seno y el Coseno del nmero 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 parablico. Este bloque se encuentra en el CAJN Setup and Run de la pestaa 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 numrica y permite ajustar su valor de una forma dinmica, 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.

PROBLEMAS PROPUESTOS
- Modifica el juego y dibuja ms blancos en diferentes posiciones Y - Adapta la simulacin del tiro parablico para crear un juego de basketball - Adapta la simulacin del tiro parablico para la creacin de un nuevo juego que emule el tiro de can. Las coordenadas X y Y debern ajustarse mediante variables compartidas y bloques SLIDER, de tal forma que los disparos puedan ser dirijidos a cualquier zona del terreno. - Realiza la simulacin de otros tipos de movimientos en StarLogo TNG y crea juegos sencillos en donde se usen estas simulaciones.

Juegos en StarLogo TNG - Juan Javier Guampe - 2012

Pgina 175

Juego 16: Yermis - Adaptacin

Problema

Crear una adaptacin del popular juego colombiano Yermis. En esta versin 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 ms 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).

Plan
1. Preparar las condiciones iniciales: - Eliminar las dos tortugas de inicio - Crear los personajes del juego (Breeds) - Ajustar las propiedades de cada personaje: Posicin, tamao, color, etc. 2. Programar a los personajes: - Crear las variables necesarias - Programar el movimiento del Jugador - Programar el lanzamiento de balas - Programar la recoleccin de objetos y el armado de la torre - Preparar las colisiones entre personajes 3. Probar 4. Nuevas ideas y problemas propuestos.

Programando

- 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 Recoleccin de los objetos por parte del Jugador. Para lograr esto deberemos usar los bloques de colisin y una variable que nos indique que el Objeto ha sido Tomado y que por tal razn 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 situacin 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 cuntos objetos han sido recogidos y llevados correctamente al centro del terreno, , en otras palabras, para saber que altura tiene la torre.

IDEAS

Juegos en StarLogo TNG - Juan Javier Guampe - 2012

Pgina 176

Juego 16: Yermis - Adaptacin

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 visin general y anticipada de toda la programacin del juego en el CANVAS. Existen procedimientos para el movimiento del Jugador, Computador y BalasComputador, tambin un procedimiento en la regin del personaje Torre que tiene el mayor nmero de bloques, as como las variables que requiere el juego.

Juegos en StarLogo TNG - Juan Javier Guampe - 2012

Pgina 177

Juego 16: Yermis - Adaptacin

En la regin 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 posicin al azar pero dentro de los lmites -30 y 30, tanto en el eje X, como en el eje Y. Tambin se han iniciado las cuatro variables del juego: Tocada, Centro?, ContarTorre y Ganador con los valores mostrados, adems de la variable Score. Pgina 178

Juegos en StarLogo TNG - Juan Javier Guampe - 2012

Juego 16: Yermis - Adaptacin

En la regin 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 posicin horizontal (Bloque Set X) para que el jugador pueda VER, en todo momento, los proyectiles disparados desde la parte superior del SPACELAND.

Juegos en StarLogo TNG - Juan Javier Guampe - 2012

Pgina 179

Juego 16: Yermis - Adaptacin


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 ejecucin 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.

El procedimiento Muevebalas permite el desplazamiento de los proyectiles de forma descendente desde la parte superior del SPACELAND, tambin se encarga de desaparacer las balas cuando stas alcanzan una coordenada Y inferior a -35. La imagen inferior muestra tres variables creadas en la regin 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 numrica-compartida y tiene adems un bloque Monitor asociada para conocer su valor mientras se est jugando.

Juegos en StarLogo TNG - Juan Javier Guampe - 2012

Pgina 180

Juego 16: Yermis - Adaptacin


El procedimiento Armartorre, creado en la regin Torre del CANVAS, permite que este personaje pueda moverse detrs 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 (Colisin). 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.

Juegos en StarLogo TNG - Juan Javier Guampe - 2012

Pgina 181

Juego 16: Yermis - Adaptacin


En un bloque Forever colocado en la regin Runtime del CANVAS se incluyen los procedimientos previos, cada uno en la seccin adecuada del bloque. Finalmente se reemplaza su nombre por Jugar. En esta misma regin se coloca un bloque RUN ONCE, con el nombre de Instrucciones y en la seccin del Jugador, se incluye un mensaje de texto que ser mostrado cada vez que este botn se presione desde la ventana Runtime del SPACELAND.

Juegos en StarLogo TNG - Juan Javier Guampe - 2012

Pgina 182

Juego 16: Yermis - Adaptacin

En la regin 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 tambin 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)

Juegos en StarLogo TNG - Juan Javier Guampe - 2012

Pgina 183

Juego 16: Yermis - Adaptacin

En el SPACELAND es necesario dibujar una pequea regin circular, de cualquier color, para indicar en dnde 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, tambin puede tomar varios de ellos al mismo tiempo.

PROBLEMAS PROPUESTOS
- Incluye un segundo Computador que lance proyectiles desde la parte inferior del SPACELAND, haciendo mucho ms difcil 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 proteccin para el Jugador - Ajusta el nmero de Torres de forma dinmica, mediante el uso de una variable compartida numrica asociada a un bloque SLIDER. Esto permitir definir el nivel de dificultad del juego desde el SPACELAND.

Juegos en StarLogo TNG - Juan Javier Guampe - 2012

Pgina 184

Juego 17: Cruzando la avenida

Problema

Crear un juego que simule el trfico de una avenida, con vehculos 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 simulacin deber incluir vehculos de diferentes tipos y al menos uno de ellos deber tener la habilidad de adelantar a los dems. Igualmente debe inlcuirse un lmite de tiempo para el Jugador.

Plan
1. Preparar las condiciones iniciales: - Eliminar las dos tortugas de inicio - Crear los personajes del juego (Breeds) - Ajustar las propiedades de cada personaje: Posicin, tamao, 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 personajes 3. Probar 4. Nuevas ideas y problemas propuestos.

Programando

- Cada uno de los autos deber tener una velocidad diferente y un carril especfico. El ms veloz de ellos podr adelantar a los dems tipos de vehculos, para lo cual se deber pensar en una forma de deteccin de los autos que estn alrededor. - En la simulacin del trfico 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, trs 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.

IDEAS

Juegos en StarLogo TNG - Juan Javier Guampe - 2012

Pgina 185

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 visin general y anticipada de toda la programacin del juego en el CANVAS. En cada seccin se han creado los procedimientos correspondientes al comportamiento de cada personaje. En este ejemplo se ha usado tambin la seccin Everyone en donde se han creado cuatro procedimientos que se explicarn a continuacin.

Juegos en StarLogo TNG - Juan Javier Guampe - 2012

Pgina 186

Juego 17: Cruzando la avenida

Uno de los primeros problemas a resolver es el de cmo ubicar a todos los autos en el SPACELAND. Vamos a colocar 6 autos de cada familia en sus carriles especficos, sin embargo, Cmo podemos hacer para que al colocarlos al azar en dichos carriles queden alejados unos de otros? La respuesta est en un concepto usado en programacin llamado RECURSIVIDAD. En la regin Everyone del CANVAS se han creado cuatro procedimientos para la ubicacin 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 10150), 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 tamao y orientacin, as como inicializar la variable FinDeportivos en falso (FALSE).

Juegos en StarLogo TNG - Juan Javier Guampe - 2012

Pgina 187

Juego 17: Cruzando la avenida

Las mismas acciones se ejecutan para los dems 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 regin que corresponde al BREED familia de personaje. Se les ha dado el nombre de Fin..Breed y se utilizar para saber cundo los vehculos se acercan al fin del camino (Terreno), para que desaparezcan. El concepto de Recursividad se puede emplear tambin de otras formas, por ejemplo, para ubicar a varios personajes de forma aleatoria pero en una misma regin de un color especfico; para ubicarlos en una zona delimitada por un rango de coordenadas. Estos cuatro procedimientos se colocarn dentro del bloque Set up para la creacin y ubicacin de los personajes.

Juegos en StarLogo TNG - Juan Javier Guampe - 2012

Pgina 188

Juego 17: Cruzando la avenida

En la regin 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 creacin (Create...breed) para la ubicacin de los personajes en el juego. Tambin 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.
Juegos en StarLogo TNG - Juan Javier Guampe - 2012

Pgina 189

Juego 17: Cruzando la avenida

Este es el procedimiento mover, ubicado en la regin Carga del CANVAS. Permite el movimiento de este tipo de vehculos, 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 vehculos de carga que tengan la variable en verdadero, si este nmero 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 caractersticas del agente que los cre.

Juegos en StarLogo TNG - Juan Javier Guampe - 2012

Pgina 190

Juego 17: Cruzando la avenida

La mismas acciones se realizan con los otros vehculos, por ejemplo, este es el procedimiento MueveCamionetas, ubicado en la regin Camionetas del CANVAS. Permite el movimiento de este tipo de vehculos, 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 nmero 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 caracterstica.

Juegos en StarLogo TNG - Juan Javier Guampe - 2012

Pgina 191

Juego 17: Cruzando la avenida

Con los vehculos 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 vehculos (1.5)

Juegos en StarLogo TNG - Juan Javier Guampe - 2012

Pgina 192

Juego 17: Cruzando la avenida

Para los autos Deportivos se repite el mismo proceso. Como este tipo de vehculos 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 nmeros de identificacin (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 cambiarn de carril hasta la coordenada Y=6. Cuando no haya ningn elemento en la lista, entonces los carros deportivos se movern a lo largo de la coordenada Y=0
Juegos en StarLogo TNG - Juan Javier Guampe - 2012

Pgina 193

Juego 17: Cruzando la avenida

Este es el procedimiento Caminar creado en la seccin 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 posicin 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 an la avenida, ste personaje desaparece y el jugador pierde.

Juegos en StarLogo TNG - Juan Javier Guampe - 2012

Pgina 194

Juego 17: Cruzando la avenida

En la regin Runtime y dentro de un bloque Forever se han colocado los cinco procedimientos correspondientes a cada uno de los personajes. Tambin se ha cambiado el nombre del bloque por Jugar. En esta misma seccin Runtime se ha incluido un bloque RUN ONCE con las instrucciones del juego, por medio de un mensaje de texto.

Finalmente en la regin Collisons se colocan los cuatro bloques de colisin entre el Jugador y cada uno de los autos. Cuando suceda el choque la accin simpre ser la misma: El Jugador morir.

Juegos en StarLogo TNG - Juan Javier Guampe - 2012

Pgina 195

Juego 17: Cruzando la avenida

Finalmente en el SPACELAND deberemos dibujar la avenida. Es necesario tener en cuenta que los autos se desplazarn desde la coordenada Y=0 hasta Y=-6, por tal razn la carretera deber tener al menos esta dimensin en su ancho. Opcionalmente se puede dibujar con lneas 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, tambin se muestra el SCORE y el CLOCK (Reloj) que aparecen en la parte inferior derecha del Spaceland.

Juegos en StarLogo TNG - Juan Javier Guampe - 2012

Pgina 196

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 mtodo se logra distribuirlos sobre el eje X con una misma distancia entre autos. Tambin 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 cules espacios estn vacios adelante para usarlos en su desplazamiento. - Realiza una simulacin de una autopista de doble sentido, con ocho carriles, cuatro en cada direccin. Intenta realizar una simulacin mucho ms cercana a la vida real. - Intenta asignar un tiempo de vida a los autos con ayuda de una variable azul de tipo numrico (EDAD). Esta variable se incrementar con el valor absoluto de su posicin horizontal (Cor X) y cuando llegue a 100 (Fin del terreno), entonces los autos debern desaparecer e inmediatamente aparecer en el otro extremo, reiniciando tambin su variable de EDAD. Esta ser otra forma de simular el desplazamiento de los autos. - Realiza la simulacin de un cruce de calles con semforo, de tal forma que los vehculos que vayan en una direccin (Por ejemplo, sobre el eje X), tengan que deternerse por unos segundos en la luz roja, mientras los autos que van en la otra direccin pueden avanzar normalmente. Despus de un tiempo acordado la situcin se debe invertir para los autos, permitiendo el movimiento de los que estaban detenidos y parando a los que estaban desplazndose.

Juegos en StarLogo TNG - Juan Javier Guampe - 2012

Pgina 197

Juego 18: Cada uno en su lugar

Problema

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 regin equivocada se le penalizar.

Plan
1. Preparar las condiciones iniciales: - Eliminar las dos tortugas de inicio - Crear los personajes del juego (Breeds) - Ajustar las propiedades de cada personaje: Posicin, tamao, 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 SPACELAND 4. Probar 5. 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 colisin entre el Jugador y dichos objetos, que stos ltimos se dirijan en la direccin que avanza el Jugador. - Se crearn 9 objetos en total, 3 de cada familia. Para lograr ubicarlos al azar, aunque limitados a una regin especfica en el SPACELAND, se utilizar de nuevo el concepto de Recursividad explicado en el ejemplo anterior.

Juegos en StarLogo TNG - Juan Javier Guampe - 2012

Pgina 198

Juego 18: Cada uno en su lugar

Se han creado cuatro familias (Breeds) de personajes: Jugador, Bolas, Pirmides y Cubos y se han escogido las formas que se muestran en la imagen superior. La imagen inferior muestra una visin general y anticipada de toda la programacin del juego en el CANVAS. En cada seccin 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, Pirmides y Cubos)

Juegos en StarLogo TNG - Juan Javier Guampe - 2012

Pgina 199

Juego 18: Cada uno en su lugar

En la regin 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 ubicacin 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 posicin 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.

Juegos en StarLogo TNG - Juan Javier Guampe - 2012

Pgina 200

Juego 18: Cada uno en su lugar

Este es el procedimiento Disponer, creado en la regin Everyone del CANVAS para que pueda ser usado por cualquier personaje dentro del juego. Permite que el tamao 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 posicin 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 condicin sea falsa. Cuando la condicin no puede llegar a un valor falso, StarLogo TNG terminar bloquendose pues tratar de responder con lo que se le ha pedido y ser necesario reiniciar el programa.

En la regin 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.

Juegos en StarLogo TNG - Juan Javier Guampe - 2012

Pgina 201

Juego 18: Cada uno en su lugar

Este procedimiento llamado CaerBolas creado en la regin 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 posicin central del terreno (HOME). Asimismo, si este mismo personaje Bolas es llevado a las zonas de los objetos Pirmides y Cubos, entonces el SCORE se disminuye en 2 puntos, se despliega un mensaje y la Bola es llevada a la posicin central.

Juegos en StarLogo TNG - Juan Javier Guampe - 2012

Pgina 202

Juego 18: Cada uno en su lugar

Para verificar que el personaje Bolas ha sido llevado al lugar correcto, su posicin 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 ms difcil se puede reducir el rango dado en los dos ejes, de esta forma el Jugador deber ser mucho ms cuidadoso a la hora de llevar las Bolas a su sitio.

Juegos en StarLogo TNG - Juan Javier Guampe - 2012

Pgina 203

Juego 18: Cada uno en su lugar

Para el caso del personaje Pirmides tambin 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 condicin necesaria para que los bloques IF ejecuten las acciones, esto implica que para que la condicin 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

Juegos en StarLogo TNG - Juan Javier Guampe - 2012

Pgina 204

Juego 18: Cada uno en su lugar

Juegos en StarLogo TNG - Juan Javier Guampe - 2012

Pgina 205

Juego 18: Cada uno en su lugar

Para el personaje Rectngulos tambin 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 Rectngulos a las zonas de los Cubos Pirmides. La imagen inferior muestra un bloque Forever colocado en la regin 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.

Juegos en StarLogo TNG - Juan Javier Guampe - 2012

Pgina 206

Juego 18: Cada uno en su lugar

Las instrucciones se han colocado en un bloque RUN ONCE que se ha colocado tambin en la regin Runtime del CANVAS.

Juegos en StarLogo TNG - Juan Javier Guampe - 2012

Pgina 207

Juego 18: Cada uno en su lugar

Las colisiones entre el Jugador y los dems objetos hacen que stos ltimos asuman la direccin (HEADING ID=0) del Jugador y se muevan 5 pasos en esa misma direccin. La imagen inferior muestra el SPACELAND. All es necesario dibujar las 3 zonas ubicadas en la parte superior, utilizando colores y la opcin de DEPRESIN ofrecida.

Juegos en StarLogo TNG - Juan Javier Guampe - 2012

Pgina 208

Juego 18: Cada uno en su lugar

Bloques adicionales usados


Estos bloques se encuentran en el CAJN Traits de la pestaa Factory. Permiten establecer en ancho (Width) y el largo (Length) de los agentes o personajes. En el ejemplo se utiliz para ajustar la dimensin del Jugador para que su forma se viera como un palo o bate que golpea a los objetos. Este bloque se encuentra en el CAJN Logic de la pestaa 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 posicin. Estos bloques se encuentran en el CAJN Other Agent de la pestaa Factory. Reporta la direccin (HEADING) del personaje identificado con el nmero asociado al lado derecho del bloque.

PROBLEMAS PROPUESTOS
- Modifica el juego dibujando obstculos en el terreno, haciendo ms difcil el movimiento de los objetos en el SPACELAND. - Mejora el juego, haciendo que los objetos solo puedan encajar en una direccin. Entonces para validar que un objeto ha quedado en su zona se deber verificar su posicin (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 podra pensar tambin en otorgar el control al personaje ms cercano a la pelota, es decir, la posibilidad de ser controlado mediante las flechas del teclado, solo si es el Jugador ms cercano a la pelota, mientras los dems se mueven de forma al azar.

Juegos en StarLogo TNG - Juan Javier Guampe - 2012

Pgina 209

Juego 19: Objetos escondidos

Problema

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 indicarn 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 bsqueda. Al final del juego deber mostrarse el tiempo total invertido en la tarea.

Plan
1. Preparar las condiciones iniciales: - Eliminar las dos tortugas de inicio - Crear los personajes del juego (Breeds) - Ajustar las propiedades de cada personaje: Posicin, tamao, 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 deteccin: Radar - Usar el Radar para buscar los objetos - Configurar las colisiones - Mostrar el tiempo final 3. Probar 4. 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 estarn ocultos y a medida que el Jugador los vaya encontrando cambiarn su propiedad a Show Agent - Se deber desarrollar un sistema de deteccin o Radar que pueda ser usado por el Jugador. Este sistema mostrar cinco mensajes de ayuda: Muy muy lejos, Ests lejos, Mas o menos, Cerca y Muy cerca, dependiendo del grado de cercana con el objeto escondido. El mismo Radar se usar para encontrar, uno a uno, los 3 objetos. Por esta razn el sistema debe permitir la seleccin de cul 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 tambin indicar el tiempo invertido. Aqu deberemos buscar la forma de congelar el reloj y mostrarlo.

Juegos en StarLogo TNG - Juan Javier Guampe - 2012

Pgina 210

Juego 19: Objetos escondidos

Se han creado cuatro familias (Breeds) de personajes: Jugador, Bolas, Pirmides y Cubos y se han escogido las formas que se muestran en la imagen superior. La imagen inferior muestra una visin general y anticipada de toda la programacin del juego en el CANVAS. En cada seccin se han creado los procedimientos correspondientes al comportamiento de cada personaje. Se han usado todas las secciones del CANVAS. Esta parte es idntica al juego anterior en donde se usaron la misma cantidad de personajes.

Juegos en StarLogo TNG - Juan Javier Guampe - 2012

Pgina 211

Juego 19: Objetos escondidos

En la seccin 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 crearn durante la ejecucin del juego, a medida que el Jugador vaya encontrando los objetos. Los ltimos bloques inicializan a cero las cuatro variables de tipo numrico compartidas que han sido previamente creadas: ContarBolas, ContarPirmides, ContarCubos y Conteo. Finalmente se muestra el reloj (CLOCK) y se ubica la Bola en una posicin al azar (Scatter Bolas).

Juegos en StarLogo TNG - Juan Javier Guampe - 2012

Pgina 212

Juego 19: Objetos escondidos

En la regin Jugador se ha creado este procedimiento llamado Mover, el cual permite el desplazamiento de este personaje, as como la ejecucin del procedimiento Radar (Que se explicar ms adelante). La condicin necesaria para que el procedimiento Radar se ejecute, es que las variables ContarBolas, ContarPirmides y ContarCubos se encuentren en CERO. Recordemos que esto se hizo en el bloque Set up explicado en la pgina anterior, sin embargo, al inicio del juego solo est presente la Bola, por tanto el Radar solo podr detectar a dicho personaje

Juegos en StarLogo TNG - Juan Javier Guampe - 2012

Pgina 213

Juego 19: Objetos escondidos

Dejaremos la explicacin del Radar para unas hojas ms adelante. Por ahora expliquemos este procedimiento llamado CrearPiramide realizado en la regin Bolas del CANVAS. Cuando el Jugador encuentre la Bola (Colisin) pasarn 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 CrearPirmide (Imagen inferior). Este procedimiento se encarga de CREAR o GENERAR (Hatch do) al personaje Pirmides, 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 Pirmides. Finalmente otra de las variables creadas, Conteo se colocar con valor 2.

Juegos en StarLogo TNG - Juan Javier Guampe - 2012

Pgina 214

Juego 19: Objetos escondidos

Esta parte es similar a la explicacin anterior. Cuando se presente la colisin entre el Jugador y la Pirmide, es decir, cuando el jugador haya encontrado el segundo objeto debern pasar varias acciones: El Jugador ser llevado a un sitio al azar, la Pirmide se mostrar y la variable ContarPirmides se incrementar en 1. (Recordemos que al inicio del juego su valor era CERO). Cuando esto ltimo pasa, el personaje Pirmides puede ejecutar su procedimiento CrearCubo y entonces har que se genere a 1 solo personaje de la familia Cubos, en una posicin al azar, de color azul e invisible. Para impedir que se generen ms Cubos, dentro del mismo procedimiento se incluye el incremento en 1 de la variable ContarPirmides (Que ahora debera tener como valor 2). El procedimiento termina haciendo que la variable Conteo se coloque con valor 3.

Juegos en StarLogo TNG - Juan Javier Guampe - 2012

Pgina 215

Juego 19: Objetos escondidos


La colisin con el ltimo objeto (Cubos) hace que el Jugador se vaya al centro y que el cubo se muestre. Tambin 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 ms el mensaje Mi tiempo fue con el valor del reloj congelado.

Juegos en StarLogo TNG - Juan Javier Guampe - 2012

Pgina 216

Juego 19: Objetos escondidos


El procedimiento Radar ha sido creado en la regin Everyone para que pueda ser usado por cualquier BREED en el juego. En este caso es el Jugador quien har uso de l. Su funcin es la de desplegar diferentes mensajes, dependiendo de la cercana entre el Jugador (o cualquier otro personaje que haga uso del procedimiento) y el personaje identificado con el nmero que tenga la variable Conteo. Al inicio del juego la varible Conteo ha sido inicializada en 1 y el personaje identificado con este nmero (ID) es la Bola, por lo tanto el Radar detectar a este personaje primero. La idea principal del procedimiento es COMPARAR la posicin (Coordenadas X y Y) del Jugador contra la posicin del otro personaje (Primero la Bola, luego la Pirmide y finalmente el Cubo). Para determinar si los dos personajes estn muy cerca se utiliza un bloque IF-ELSE y para su condicin 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 ms bloques IF-ELSE como se muestra en la imagen. Si la resta de coordenadas est entre 5 y 10, los dos personajes estn CERCA Si la resta de coordenadas est entre 10 y 30, los dos personajes estn MAS O MENOS Si la resta de coordenadas est entre 30 y 60, los dos personajes estn LEJOS Si la resta de coordenadas est es mayor a 60 los personajes estn MUY MUY LEJOS

Juegos en StarLogo TNG - Juan Javier Guampe - 2012

Pgina 217

Juego 19: Objetos escondidos


Todos los bloques IF-ELSE del procedimiento Radar tienen en su condicin 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 condicin 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 Pirmide y la variable Conteo se coloca en 2. En este momento el Radar empezar a detectar a este personaje (ID=2). Finalmente cuando la Pirmide 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.

Finalmente dentro de un bloque Forever con el nombre de Jugar se colocan los procedimientos descritos. En esta misma seccin Runtime de CANVAS se incluye un bloque RUN ONCE con las instrucciones del juego. La imagen en la siguiente pgina muestra una vista del SPACELAND en donde el Jugador ya ha encontrado a la Bola y trata de buscar a la Pirmide, siguiendo los mensajes de ayuda que aparecen.

Juegos en StarLogo TNG - Juan Javier Guampe - 2012

Pgina 218

Juego 19: Objetos escondidos

PROBLEMAS PROPUESTOS
- Incluye ms elementos que deban ser encontrados por el Jugador, tambin incluye objetos que sean Peligrosos y que no se puedan tocar. - Afina la sensibilidad del Radar, estableciendo muchas ms regiones de deteccin, con base en la distancia entre los dos personajes. - Aumenta la dificultad del juego haciendo que los objetos ocultos cambien de posicin despus de cierto tiempo (Algunos segundos). - Intenta construir un Radar con ayuda de los bloques Smell with y compara el funcionamiento de los dos mtodos.

Juegos en StarLogo TNG - Juan Javier Guampe - 2012

Pgina 219

Juego 20: Salta y llega a la meta

Problema

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.

Plan
1. Preparar las condiciones iniciales: - Eliminar las dos tortugas de inicio - Crear los personajes del juego (Breeds) - Ajustar las propiedades de cada personaje: Posicin, tamao, 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. Probar 4. 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 nmero de pasos que han avanzado los personajes. Dependiendo se su valor, los personajes girarn hacia una direccin y tambin morirn. Ser como una variable de EDAD que servir adems para generar Nuevos objetos, una vez que hayan desaparecido los objetos Viejos. - Uno de los primeros problemas a resolver ser la forma como se generarn los objetos y la cantidad de ellos. Para controlar esto usaremos variables que guaradarn la cantidad de pasos que han recorrido los personajes y tambin la cuenta del reloj (CLOCK) - La programacin del salto del personaje puede ser realizada de una forma sencilla, con ayuda de los bloques Set altitude y Yield.

Juegos en StarLogo TNG - Juan Javier Guampe - 2012

Pgina 220

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 visin anticipada de toda la programacin 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.

Juegos en StarLogo TNG - Juan Javier Guampe - 2012

Pgina 221

Juego 20: Salta y llega a la meta

En la regin 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. Tambin se han inicializado las dos variables azules Pasos y PasosJugador a CERO. Los ltimos dos bloques se encargan de mostrar en reloj y reiniciarlo.

Juegos en StarLogo TNG - Juan Javier Guampe - 2012

Pgina 222

Juego 20: Salta y llega a la meta

Esta es la primera parte del procedimiento Mover, creado en la regin Bloques del CANVAS. Permite el desplazamiento del Bloque con base en movimientos hacia adelante y el cambio de direccin (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 direccin 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 direccin 270, cuando haya recorrido 105 pasos girar en la direccin 180, cuando haya recorrido 130 pasos girar en la direccin 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.

Juegos en StarLogo TNG - Juan Javier Guampe - 2012

Pgina 223

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 nmero de Bloques que se van a GENERAR, y limitan su cantidad a 6 como mximo. Para lograr esto se solicita al primer personaje Bloque que repita (REPEAT) cinco veces la Generacin (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 Creacin de bloques (Hasta que existan 6 bloques) el reloj se reinicia a cero.

Juegos en StarLogo TNG - Juan Javier Guampe - 2012

Pgina 224

Juego 20: Salta y llega a la meta

Esta es la primera parte del procedimiento Caminar, creado en la regin 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 nmero 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 tambin en 1, haciendo que el Jugador pueda moverse adelante y atrs. El control de direccin (Heading) est de nuevo en manos de la variable. Por ejemplo, cuando el Jugador ha recorrdio 25 pasos girar en la direccin 90, cuando haya recorrido 105 pasos girar en la direccin 0 y as sucesivamente hasta llegar al final del camino amarillo, como muestra la imagen

Juegos en StarLogo TNG - Juan Javier Guampe - 2012

Pgina 225

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 combinacin con un par de bloques Yield, los cuales ayudan a disminuir la velocidad con que se ejecutan estas acciones. La condicin necesaria para ejecutar este Salto es que se presione la barra espaciadora (Space bar)

Finalmente en la regin 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. Tambin se ha usado un bloque RUN ONCE en donde se han incluido las instrucciones del juego, a travs de los bloques de texto asociados.

Juegos en StarLogo TNG - Juan Javier Guampe - 2012

Pgina 226

Juego 20: Salta y llega a la meta

En la regin 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 opcin 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.

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 ms largo incrementando la dificultad del juego. - Piensa en una forma de lograr que los bloques sigan un camino, pero a travs de un mtodo diferente al usado en este ejemplo. Cuando lo logres ponlo en prctica creando ms juegos. - Intenta simular un juego comercial parecido, como Donkey Kong

Juegos en StarLogo TNG - Juan Javier Guampe - 2012

Pgina 227

Das könnte Ihnen auch gefallen