Juegos en Starlogo TNG - Cuarta parte del libro

  • Published on
    06-Aug-2015

  • View
    682

  • Download
    3

Embed Size (px)

DESCRIPTION

Juegos en Starlogo TNG es un libro dedicado a la enseanza de la programacin a travs del diseo de videojuegos sencillos con el software desarrollado por el MIT. Cada captulo explica una serie de juegos en donde se hace uso de estructuras de programacin, usadas tambin en cualquier otro lenguaje.

Transcript

<p>Cap</p> <p>4</p> <p>CAPTULO IV</p> <p>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</p> <p>Juegos en StarLogo TNG - Juan Javier Guampe - 2012</p> <p>Pgina 116</p> <p>Juego 11: Congelados</p> <p>?</p> <p>Problema</p> <p>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</p> <p>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.</p> <p>Plan</p> <p>Programando</p> <p>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.</p> <p>Juegos en StarLogo TNG - Juan Javier Guampe - 2012</p> <p>Pgina 117</p> <p>Juego 11: Congelados</p> <p>Comentarios</p> <p>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.</p> <p>Juegos en StarLogo TNG - Juan Javier Guampe - 2012</p> <p>Pgina 118</p> <p>Juego 11: CongeladosComentarios</p> <p>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.</p> <p>Juegos en StarLogo TNG - Juan Javier Guampe - 2012</p> <p>Pgina 119</p> <p>Juego 11: CongeladosComentarios</p> <p>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</p> <p>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&gt;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</p> <p>Pgina 120</p> <p>Juego 11: Congelados</p> <p>Comentarios</p> <p>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</p> <p>Juegos en StarLogo TNG - Juan Javier Guampe - 2012</p> <p>Juego 11: Congelados</p> <p>Comentarios</p> <p>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</p> <p>Juegos en StarLogo TNG - Juan Javier Guampe - 2012</p> <p>Juego 11: Congelados</p> <p>Juegos en StarLogo TNG - Juan Javier Guampe - 2012</p> <p>Pgina 123</p> <p>Juego 11: Congelados</p> <p>Comentarios</p> <p>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.</p> <p>Bloques adicionales usadosEste 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</p> <p>Juegos en StarLogo TNG - Juan Javier Guampe - 2012</p> <p>Pgina 124</p> <p>Juego 11: Congelados</p> <p>- 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.</p> <p>PROBLEMAS PROPUESTOS</p> <p>Juegos en StarLogo TNG - Juan Javier Guampe - 2012</p> <p>Pgina 125</p> <p>Juego 12: Jugador vs Computador</p> <p>?</p> <p>Problema</p> <p>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.</p> <p>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.</p> <p>Plan</p> <p>Programando</p> <p>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=1Pgina 126</p> <p>Juegos en StarLogo TNG - Juan Javier Guampe - 2012</p> <p>Juego 12: Jugador vs Computador</p> <p>Comentarios</p> <p>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.</p> <p>Juegos en StarLogo TNG - Juan Javier Guampe - 2012</p> <p>Pgina 127</p> <p>Juego 12: Jugador vs Computador</p> <p>Comentarios</p> <p>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</p> <p>Pgina 128</p> <p>Juego 12: Jugador vs Computador</p> <p>1</p> <p>2</p> <p>3</p> <p>4Juegos en StarLogo TNG - Juan Javier Guampe - 2012</p> <p>Pgina 129</p> <p>Juego 12: Jugador vs Computador</p> <p>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.</p> <p>1</p> <p>Comentarios</p> <p>Comentarios</p> <p>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&gt;-30 y X</p>