Beruflich Dokumente
Kultur Dokumente
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
Pgina 116
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.
Pgina 117
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.
Pgina 118
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.
Pgina 119
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
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
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
Pgina 123
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.
Pgina 124
- 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
Pgina 125
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
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.
Pgina 127
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
4
Juegos en StarLogo TNG - Juan Javier Guampe - 2012
Pgina 129
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
Pgina 130
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
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
Pgina 132
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.
Pgina 133
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
Pgina 134
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.
Pgina 135
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.
Pgina 136
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.
Pgina 137
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.
Pgina 138
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.
Pgina 139
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.
Pgina 140
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.
Pgina 141
Pgina 142
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.
Pgina 143
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.
Pgina 144
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
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.
Pgina 146
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)
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.
Pgina 149
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.
Pgina 150
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.
Pgina 151
Pgina 152
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
Pgina 154
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.
Pgina 155
Pgina 156
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.
Pgina 157
Pgina 158
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.
Pgina 159
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
Pgina 161
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
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.
Pgina 163
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
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.
Pgina 165
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
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.
Pgina 167
Pgina 168
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
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)
Pgina 170
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
Pgina 171
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
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
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
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.
Pgina 175
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
Pgina 176
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.
Pgina 177
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
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.
Pgina 179
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.
Pgina 180
Pgina 181
Pgina 182
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)
Pgina 183
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.
Pgina 184
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
Pgina 185
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.
Pgina 186
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).
Pgina 187
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.
Pgina 188
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
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.
Pgina 190
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.
Pgina 191
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)
Pgina 192
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
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.
Pgina 194
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.
Pgina 195
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.
Pgina 196
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.
Pgina 197
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.
Pgina 198
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)
Pgina 199
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.
Pgina 200
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.
Pgina 201
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.
Pgina 202
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.
Pgina 203
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
Pgina 204
Pgina 205
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.
Pgina 206
Las instrucciones se han colocado en un bloque RUN ONCE que se ha colocado tambin en la regin Runtime del CANVAS.
Pgina 207
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.
Pgina 208
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.
Pgina 209
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.
Pgina 210
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.
Pgina 211
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).
Pgina 212
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
Pgina 213
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.
Pgina 214
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.
Pgina 215
Pgina 216
Pgina 217
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.
Pgina 218
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.
Pgina 219
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.
Pgina 220
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.
Pgina 221
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.
Pgina 222
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.
Pgina 223
Pgina 224
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
Pgina 225
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.
Pgina 226
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
Pgina 227