Sei sulla pagina 1di 66

PROGRAME EN ALICE 2.

PEDRO J. FONSECA SOLANO

AGRADECIMIENTO A la Universidad Nacional, a la Escuela de Filosofa y a la Escuela de Informtica, por la oportunidad de enriquecer mi acervo intelectual.

Al Ministerio de Educacin Pblica de Costa Rica y a la Fundacin Omar Dengo, por las mltiples oportunidades que brindaron a lo largo de muchos aos en mi labor como docente

A Don Slater y Wanda Dann, de la Universidad de Carnagie Mellon, por su motivacin a programar en Alice y su aporte intelectual a mi persona. Its time to another hello world !!!

Pedro Fonseca Solano

Ambiente

En Alice, los mtodos son usualmente invocados o ejecutados por un evento, aunque no siempre ser as para todo, depende de nuestro estilo de programacin y la forma en queramos dar la solucin a un problema. Cuando, entramos a Alice, y seleccionas un tipo de mundo, as nos aparece el ambiente: Ejecutar, Deshacer Recuperar Pantalla que muestra el Mundo al darle PLAY

rea de Eventos

El Mundo y sus partes

Portapapeles

Propiedad es, mtodos y funciones del mundo

rea de Programacin

Estructuras y sentencias de programacin Podemos decir, que en hay 8 reas fundamentales en Alice: Mundo y sus propiedades Pantalla de visualizacn rea de Eventos rea de programacin (my first method) Botones: Play, Undo, Redo, Basurero y Portapapeles

PLAY, UNDO y REDO

Play lo utilizamos, para ejecutar el mundo que hemos construido en Alice, es decir ponemos a funcionar todo los que hemos construido o ambientado, y los que hemos programado

Para deshacer, la ltima accin que realizamos, en caso de que sea algo que no deseamos, por ejemplo, cuando borramos una objeto, mtodo o funciones y no queremos hacerlo, con este botn lo recuperamos.

Hace los mismo que los anterior, solo que tiene una memoria, que nos permite ir unos cuantos pasos atrs, pero cuidado, si saturamos su capacidad, las acciones nuevas las registrara en la memoria y probablemente, perderemos informacin, porque le caer encima a la informacin que ya tenamos y usamos indiscriminadamente este botn.

El basurero, nos sirve para borrar o eliminar los elementos de que deseemos de Alice, funciona cuando arrastramos el objeto o elemento, deseado al basurero, con excepcin de los objetos en l la pantalla del visualizacin del mundo.

El portapapeles, nos permite colocar elementos de Alice, arrastrndolos hasta l, para copiarlos en la memoria del computador y luego pegarlos en el lugar que deseemos.

Este es el estado del mundo inicial en Alice, compuesto World (Mundo), Camera (cmara, light (ilumimacin)y Ground (piso o ambiente). Al parecer estas dos ventanas estn separadas pero son una misma, cada vez que usted selecciona la cmara, iluminacin, piso o mundo, se mostraran las propiedades del mismo. Esto quiere decir, que en el caso de mundo, que esta seleccionado en este momento, este mundo tiene: Propiedades, mtodos y funciones, lo mismo ocurre con cmara, la iluminacin y el piso. Adems, cuando agreguemos un objeto al mundo, este tambin aparecer en la ventana de World y tendr tambin, propiedades, mtodos y funciones, que para darles vida, debemos manipularlos y llamarlos por medio de mtodos o eventos. El mundo siempre tendr un primero programa o mtodo, que se llama my first method, es como el programa principal, donde pondremos, en orden los programas que usaremos para resolver los problemas, que nos planteamos en cada mundo, que construyamos en Alice.

Pantalla de visualizacin del mundo, cada vez que hacemos un clic a ejecutar , se mostrar el mundo, tal cual lo hayamos trabajado y aqu veremos el resultado de nuestra programacin, es decir veremos en funcionamiento, todos los objetos, las funciones y los mtodos que hayamos creado, los cuales los accionaremos por medio de los eventos que hallamos definido y creado.

rea de Eventos:

Los eventos en Alice, son muy importantes, porque nos permite hacer muchas cosas, Alice ya trae una serie de eventos definidos, entre ellos: Cuando el mundo empieza, cuando una tecla es tocada, cundo hacemos clic con el ratn en algo, Mientras que algo sea verdadera, Cuando una variable cambia, Permitir que las fechas direccionales muevan, entre otros, que nos ayudan a potenciar nuestra programacin. En otras palabras nos permite, asociar mtodos o comportamientos a eventos. Por ejemplo, si deseo que un helicptero suba, pues asocio el evento al mtodo heliSube, obviamente el mtodo debe crearse antes, para que pueda ser usado con la fecha arriba, que sera el evento. (Vea la seccin Eventos en Alice)

Mi primer mtodo: Este es el programa principal de Alice, donde haremos los llamados a los diferentes mtodos, que su vez llamaran a funciones, para lograr los efectos deseados en nuestro mundo. Tenemos tambin, estructuras y elementos de programacin, como cualquier otro lenguaje, para que podamos representar y resolver problemas.

Estructuras:

Ejecutar en orden, este es el principio FIFO, primero en entrar primero en salir, lo cual significa que las sentencias de programacin se ejecutaran en el orden establecido: Por ejemplo:

Hacerlo juntos, se utiliza para procesos paralelos, por ejemplo cuando queremos que un humanoide camine, al menos debe existir un mtodo que servir para mover los pies y otro para que el humanoide avance, si ejecutsemos estos eventos uno despus del otro, no tendramos una animacin o simulacin (dependiendo de la complejidad del movimiento) adecuada, hara primero una cosa y despus la otra, en el caso de Alice, se puede trabajar en paralelo y ejecutar los dos mtodos a la misma vez usando la sentencia Do together.

La sentencia if then else, en el caso de Alice, se presenta como If/Else, que se utiliza para evaluar condiciones, ya sea que sea falsa o verdadera y asi tomar un decisin.

Cuando, necesitamos repetir varias veces un proceso, usamos la sentencia LOOP o CICLO, recordemos que los ciclos tienen un valor inicial y un valor final, en Alice, podemos hacer un ciclo infinito (infinity times), que obviamente puede ser detenido por un condicin. Esto significa, que podemos controlar el ciclo como nos guste, ya que podemos usar variables para inicio, incremento en la veces y el tope del mismo.

While, es tambin un ciclo, se funcionara mientras un condicin sea verdadera o falsa, por ejemplo: si tenemos un auto y cada vez que le damos ignicin, queremos escuchar el sonido del motor, podemos repetir este sonido, mientras que la variable encendido sea verdadera.

Estas estructuras, se usan para el trabajo con listas o arreglos, la idea es que todos los elementos de una lista hagan en orden algo, por ejemplo, si tenemos 5 bailarinas egipcias, y deseamos simular una danza sincronizada, debemos tener mtodos para simular el movimiento de la danza, entonces esta instruccin nos permitir ejecutar en orden para todas las bailarinas los mtodos deseados.

Estas estructuras, se usan para el trabajo con listas o arreglos, por ejemplo, tenemos un grupo de personas o humanoides y deseamos que caminen al mismo tiempo, la instruccin har que todos ejecuten en paralelo el mtodo, por caminar, esto nos permite optimizar recursos, ya que usamos un solo mtodo para todos.

Esta sentencia, nos permite detener por un tiempo la ejecucin del programa, por ejemplo, si deseamos mostrar un rotulo de texto, podemos usar el espera, para que el usuario tenga tiempo de leer la informacin. Obviamente, no conviene abusar de esta sentencia, ya que puede provocar resultados no deseados, o demoras mayores de lo adecuado.

Muy importante, para envi de mensajes, y para ver el valor de variables o banderas que usemos y as conocer los valores de las variables en momentos precisos.

Esta, sentencia, se usa para documentar los programas, muchas veces despus de un tiempo, no recordamos para usamos una variable en un programa, y un comentario nos ayuda para ello.

Captura de datos en Alice 2.2, desde el teclado usando tipo numrico Recomendaciones & Agradecimientos: Alice en un ambiente de programacin 3D, que nos permite crear animaciones, que podemos programar mediante su lenguaje de programacin al estilo drag and drop, arrastre y suelte. Al principio como con cualquier otro ambiente, hay un proceso de acomodamiento, que solo con la prctica vamos superando, hasta sentirnos cmodos con el lenguaje y poder plasmar nuestras ideas y representarlas en este ambiente. Place Holder, contenedores, espacios de memoria o campos, este es un concepto muy importante de Alice, ya que es la forma en que se construyen la mayora por no decir todas las expresiones. Desde el punto de vista de la programacin, nos enfrentamos a un ambiente grfico y es una buena forma de cambiar el concepto del hello world, quizs enfrentarse a un ambiente ms amigable, permita que muchas personas tengan mayores oportunidades de aprender a programar, o al menos tener la oportunidad de probar, pero debemos recordar, que la programacin se aprende programando y que lo lgica se desarrolla con el entrenamiento y la prctica. La funciones, son otro aspecto muy interesante en Alice, ya que mucho del cdigo que podemos desarrollar utiliza funciones del lenguaje y las otras definidas por el usuario, por ejemplo, en el caso de la captura de datos, los inputs son funciones denominadas preguntas al usuario y tenemosr (ask user for a number, ask user for yes or no, ask user for a string) bsicamente.

El uso de parmetros, me parece que es ms simple de comprender e implementar en Alice , al tratarse de un mundo 3D, podemos tener a un personaje que realice alguna funcin sobre otro y si la hace para uno, por medio de parmetros podra utilizarse para otros.

Finalmente, debo agraceder a la Fundacin Omar Dengo, Andrea Anfossi, a Zeidy Estrada por la invitacin al execelente Taller de programacin en Alice 2.2, impartido magistralmente, por Don Slater y Wanda Dann, profesor de la Universidad de Carnagie Mellon, quienes nos estimularon a mi a mis compaeros a trabajar con este ambiente de programacin y buscar nuevas formas y oportunidades para que la gente se adentre el mundo de la programacin.

Quiero iniciar, diciendo que se trata de una captura de datos, cuando se ejecute el programa en el ambiente Alice, aparecer una caja de dialogo, solicitando el nmero de cdula del usuario, y se guardara el resultado en un texto 3D, como se muestra:

1:

Queremos hacer la lectura de una variable tipo numero e imprimir su resultado en texto 3D, para ello debemos crear una variable global que se llamar cedula, hacemos un clic en World , y vamos a la vieta de propiedades y hacemos un clic en crear una nueva variable

2:

y aparecer la caja de dialogo de la derecha, donde nos pregunta el nombre (name:), en este caso le pondremos cedula, el tipo Type, es numrico y el valor por omisin es 1 y finalmente, hacemos clic en OK

3:
Como puedes observar, vemos la variable creada

4: Alice no puede imprimir directamente una


variable numrica en un texto, debe utilizarse la funcin , para convertir el valor de numrico a un string (cadena de caracteres), what es el tipo de dato que se convertir a string.

Vaya a opcin archivo de Alice,

File y seleccione agregar Texto 3D y de inmediato aparecer la caja de dialogo de la derecha: The quick Brown fox, este valor es el que podemos cambiar, aqu enviaremos el dato que capturemos desde el teclado con la funcin Ask for number

Al hacer clic en el botn aceptar, volvemos al mundo y veremos los siguiente: 1. Aparece 3D TEXT 2. Y en la pantalla aparece the quick brown, depende del tamao de la pantalla podremos ver el texto completo, si lo desea haga clic en play para verlo completamente.

Ahora le cambiaremos el nombre al texto 3D y le pondremos campo1

Detalle, note que el contenido de objeto texto 3D, es siempre el valor por omisin, la idea es capturar desde el teclado un valor numrico y traspasarlo al campo1.

Clic derecho y seleccionamos la opcin renombrar, rename, y editamos el texto y le ponemos campo1. Asi debe quedar este objeto tipo texto3D:

Para hacer la captura de datos del teclado o input Arrstrela dentro del rea de programacin y desde Alice, es un poco particular, la variable que observe, que el contorno cambia a verde, lo creamos llamada cedula, la debemos arrastrar que indica que esta en el lugar correcto. hasta el rea de programacin en World.my first method Recuerde que para arrastrar, hacemos clic izquierdo en el mouse sin soltarlo, cuando llegamos al lugar deseado solo soltamos el clic izquierdo del mouse y quedar aqu la variable.

Observe, que el contorno de la variable es rojo, lo indica que no est en la posicin correcta.

, esto ocurre al soltar la variable, donde nos solicita configurar o asignar el valor que tendr. Vaya a set value, y vera las opciones que Alice ofrece para asignar la variable. Debemos hacer un alto aqu y explicar el concepto de place holder. Cuando queremos, asignar el valor inicial, debemos primero crear el espacio o campos contenedor Place Holder

La traduccin litera, no es muy adecuada en nuestro caso, pero la idea es como un campo, deposito o contenedor. Se utiliza para poner abrir campos para que posteriormente podamos colocar los valores deseados. En nuestro caso usamos set value, value, expression, world.cedula. Porque as lo quisimos, pero pude haber seleccionado, 0,25 y otro valor.

Ahora procederemos a asignar una funcin para el input o entrada de datos por el teclado.

Asi queda cuando agregamos nuestra variable.

Vaya a funciones, siempre recuerde que debe estar seleccionado el mundo la funcin ask user for a number, hasta el campo set value to

y arrastre

Note que se pone en verde, lo cual indica que podemos realizar esta asignacin con dicha funcin, y es que la captura desde el teclado de realiza de esta manera en Alice. No podemos obviar el tipo de dato, debemos utilizar la funcin correspondiente a cada tipo de dato y recuerde que alice, bsicamente tiene:

Ahora debemos seleccionar la opcin, Otros (other) y escribir el mensaje para la lectura del dato cedula

En este caso el mensaje es Digite su nmero de cdula:

Al hacer clic, en el botn aceptar el programara se mostrar como sigue:

Al darle clic al botn play esto suceder:

Escriba su el nmero de cdula que aparece en la caja de dilogo, y haga clic en el botn aceptar:

Que ocurri? Busque el valor de la variable cedula, dependiendo del tamao que tenga la pantalla, cuando Ud. Hace clic en play, puede ser que vea la parte de propiedades del mundo y observe la variable:

Cuando termina haga clic en el botn

, observe que la variable vuelve a su estado incial:

Pero lo que realmente queremos, es pasar el valor de la variable al texto 3D, que nombramos como campo1 y parea ello hacemos lo siguiente:

1.Vaya al objeto

2.Haga clic en
la vieta de propiedades

campo1, que es un texto 3D

4.Vaya a value y escoja 3.Arrastre la


propiedad text, hasta el rea de programacin la opcin world.cedula

Asi quedara el programa, hasta aqu.

Ahora debemos hacer la conversin de nmero a string,

1.Seleccione World 2.Haga clic la


vieta funciones

3.Arrastre la funcin What as a


string y sultela sobre el campo set text to

Ahora debemos, seleccionar la opcin What, expression y finalmente world.cedula

La sentencia completa la podemos interpretar como: Escriba en campo1, que es un texto 3D, el valor de la variable cedula y convirtalo en una palabra, cadena o string.

Ya tenemos la funcin lista, ahora podemos hacer un clic en el botn play, para probar lo que hemos hecho hasta aqu. Si escribes el mismo nmero,

El resultado ser siguiente:

Lo que queda ahora, es convertir el valor de la variable en un entero, para eliminar el .0

1.Seleccione world 2.Vaya la


vieta funciones

3.Arrastre

la

funcin Int a as a String, hasta world.cedula

Ahora ya terminamos, nuestro trabajo por esta leccin, podemos hacer un clic en el botn play, veremos que el la funcin int, nos deja el entero del valor, como se muestra en la siguiente figura.

Como crear un trivia, con las capitales de Centroamrica


Necesitamos la lista de las capitales, y podemos usar esta Belmopn-Belice, Guatemala-Guatemala, Managua- Nicaragua, Panam-Panam, San JosCosta Rica, San Salvador- El Salvador, Tegucigalpa-Honduras. Vamos a crear las variables para almacenar los pases y sus capitales 2 dos variables, como se muestra a continuacin:

Vamos a propiedades del World y hacemos clic en listas.

, recuerde que son d

Tipo Otros, y ser String

Escriba el nombre de la variable

Seleccione crear lista

Por cada clic, agregamos un nuevo tem.

Haz clic

Ahora debemos crear la lista de nuestros pases y debera quedar as:

Utilizando la misma metodologa, Ud. Deber crear la lista capitales y el resultado final deber ser como el que se muestra en la lista capitales.

La variable azar tomara un valor entre 1, hasta 7, ya que tem no puede recuperar el elemento 1.33, la funcin toma la parte entera, por ejemplo, 0,33 = 0, 9,99 0 0, 1.77 = 1 y asi suscesivamente. Por ejemplo si azar vale 5, entonces el elemento 5 de pases es Costa Rica y el elemento 5 de capitales es Costa Rica.

Aqu le asignamos al texto 3D textopaises un valor entre 0 y 7 de la lista pases

Recordemos que Belice es 0, Guatemala 1, Mangua2 y as sucesivamente, y se carga el objeto textopaises aleatoriamente. Si haces clic en y si el valor aleatorio es de 5, veras algo como esto,

La siguiente lnea de cdigo, es idntica a la anterior, solo que usamos la variable capitales, obviamente si la variable azar vale 1, la capital ser Belmopn y as sucesivamente.

Haz clic en

y si el valor aleatorio es de 5, veras algo como esto,

Prueba haciendo clic en Restart, y vers los nombres de los diferentes pases centroamericanos y su capitales

Para mejorar la presentacin en la pantalla, por la duracin, la podemos dejar en 0.

Estamos pensando en lo mismo?, podemos a partir de aqu crear un trivia sobre las capitales de Centroamrica, podemos preguntarle a los usuarios, cuales la capital del azar de las lista pases y la respuesta correcta ser el zar de la lista capitales. Veamos como lo hacemos.

Vamos a crear 2 nuevas variables, para almacenar lo ya conocemos, nombres de los pases y nombre de las capitales, pregunta guarda el nombre del pases y respuesta almacenar la respuesta que el usuario escribir a la pregunta, cual es la capital de:

Asignremos a estas variables una funcin para captura de datos desde el teclado de tipo string o cadena, como se puesta a continuacin.

Ya est funcionando, ahora lo que tenemos que hacer es la evaluacin de la respuesta, si la respuesta que da el usuario es igual al azar de lista de capitales, la respuesta es correcta.

Recordemos, que cuando hacemos una pregunta ask, lo hacemos por medio de una funcin y para invocarla, debemos asignar a una variable la pregunta, el resultado de la pregunta, quedara en la variable a la que le asignamos la pregunta. Por lo tanto, el valor final de world.Pregunta, ser lo que el usuario haya escrito como respuesta.

Esta evaluacin plantea, si world.Pregunta es igual al nmero aleatorio que contiene azar de la lista capitales, lo tenemos, es correcto. Por ejemplo, el azar vale 5, por eso la pregunta es sobre Costa Rica, obviamente la respuesta correctas es el elemento no. 5 de la lista capitales, que es San Jos.

Cuando hacemos

debera aparecer lo siguiente (asumiendo que azar es una valor de = 5.. hsta 5.99), esto muestra lo siguiente:

Entonces, si world.Pregunta = San Jos y world.Respuesta = San Jos

Entonces, la respuesta es correcta, se viene a ejecutar la instruccin que esta inmediatamente despus del If

De otra manera, si respondo otra cosa, por ejemplo San Pedro

Bien ahora, si world.Pregunta = San Jos y world.Respuesta = San Pedro

Significa que la respuesta es incorrecta, y se viene por el lado del Else (sino), no toca nunca la instruccin despus del If.

Este ejemplo, muestra como programar un juego en Alice, donde un helicptero se podr desplazar el mundo, utilizando las fechas de navegacin Ingrese en Alice:

Haga un clic al botn verde de ADD OBJECTS

Busque la galera de imgenes de vehculos, hacia la derecha

Esta es la galera que tiene el helicptero que necesitamos.

, haga un clic y veras las figuras de esta galera de imgenes:

Este es el helicptero que queremos (fondo amarillo), haga un clic en l.

Haga clic en ADD instance to world

Y le aparecer en el mundo (World) lo que sigue:

Ya tenemos el Helicptero, y dmosle clic en

Ahora haga un clic en the arrow key move

<subject>,

Deje

, crear un nuevo evento, elija la opcin let que la fechas muevan al sujeto.

Le aparecern la flechas direccionales para mover, y observe que dice camera, debemos cambiar la camera por el helicopter.

Haga un clic en

, y seleccione helicopter, the entire helicopter.

As deber quedar( deje que las flechas muevan al helicptero)

Ahora, ya podemos probar el helicptero y desplazarlo por el mundo, vaya a la opcin (Jugar o ejecutar), utiliza la flechas direccionales y veras

Para terminar, solo haz un clic en vueltas, sin perderlo de vista.

, divierte un rato y trata de hacer que el helicptero de

Ahora debemos crear otros mtodos, para que el helicptero parezca ms controlable.

El mundo del helicptero, se muestra en la figura anterior, es muy importante, que cuando usemos un mtodo que ya existe o cuando construyamos uno, debe estar asociado siempre a un objeto del mundo.

Observe, que el objeto helicptero, esta seleccionado , y en la ventana inferior (helicopters details = Detalles del helicptero), aparecen las opciones properties, methods y functions (propiedades, mtodos y funciones). Si tuvisemos ms objetos, el que este seccionado va presentar los detalles del mismo. En este caso observe que en mtodos, el helicptero tiene un mtodo que se llama heli blade. Que nos va a servir para hacer funcionar el rotor del helicptero y as las hlices.

Nombre Evento heli on

Evento

Mtodo

Tipo

Tecla E

heli blade

local

Heli off Heli sube Heli baja

Tecla A Tecla S Tecla B

DPU DPU DPU

Detalles del helicptero

Tabla de eventos

Tabla de Eventos y mtodos, los mtodos locales, ya vienen con el objeto, y los mtodos DPU (Definidos por el usuario), son los que tenemos que hacer nosotros. Construyamos el mtodo heli on, vaya a crear nuevo evento: y seleccione When a key is typed (cuando una tecla es digitada o tocada).

Esta opcin genera al final del rea de eventos lo siguiente,

recuerde que cuando tenemos varios eventos, algunas veces no los vemos y debemos utilizar el ascensor hacia abajo para ubicarlos. Haz clic en any key selecciona las opciones letters y E.

Haz clic, en la opcin y selecciona la opcin letters, y luego seleccionamos la letra E, para asociar el mtodo heli blade, a la letra E.

El evento completo debe de quedar as:

Cuando la letra E, sea digitada, se ejecutar el mtodo heli blade, que har que las hlices del helicptero se muevan.

Ud. puede ver este mtodo, si lo desea, seleccionndolo y haciendo clic, en la opcin Edit. Programacin de tecla E Explicacin del mtodo y evento

Ahora vamos a crear el mtodo definido por el usuario, heli Sube, para que el helicptero puede subir, Recuerde que el helicptero debe estar seleccionado contrario, nunca podramos encontrar el mtodo, en el objeto helicopter. , pues en caso

Ahora haga clic en la el botn (Crear nuevo mtodo)

Creacin del mtodo

Nombrado del mtodo

Aqu se muestra el rea de programacin, debemos arrastrar hasta donde dice Do Nothing, las diferentes comandos de programacin, de acuerdo con las acciones que deseamos haga nuestro mtodo.

Arrastre la instruccin , hasta el rea del programa la instruccin para hacer que el helicptero suba un metro hacia arriba:

Note que la opcin se pone con el contorno en color verde, eso significa que si lo puedes poner en el rea de programacin, si esta en rojo, indica que esa no es el rea de programacin,

As debe quedar el mtodo heli Sube

Ahora vamos a crear el evento asociado a la tecla S, para que cada vez que se toque la tecla S, el helicptero suba.

Vaya a crear nuevo evento y seleccione When a key is typed, cuando una tecla es tocada

Haz un cli en la opcin any key, seleccionemos letters y escojamos la letra S, para asociar el mtodo heli Sube . Cada vez que presiones la tecla S, el helicptero subir 1 metro hacia arriba. Bien, as debe aparecer ya la tecla S, asociada, ahora lo que sigue es la opcin do (hacer o ejecutar).

Haz clic en Nothing, luego en helicopter y finalmente el mtodo heli Sube.

As se completa el evento, S que llama al mtodo heli Sube.

Haz clic en Asignacin del evento a la tecla S.

y ve a volar el helicptero. Opcin do Nothing

Creacin del mtodo, para controlar el helicptero, haciendo que este baje cuando tocamos la tecla B. Bueno es exactamente el mismo procedimiento para el mtodo heli Sube, solo que la instruccin ser:

Y la asignacin del evento a la tecla B, ser como sigue:

Bien, as debe aparecer ya la tecla B, asociada, ahora lo que sigue es la opcin do (hacer o ejecutar).

Haz clic en Nothing, luego en helicopter y finalmente el mtodo heli Baja.

As se completa el evento, S que llama al mtodo heli

Sube.

Haz clic en Asignacin del evento a la tecla S.

y ve a volar el helicptero. Opcin do Nothing

Sonido, ahora vamos a agregar el sonido de un helicptero, busque en internet y descrguelo, gurdelo en una careta que usted decida, para que a la hora de utilizarlo, lo podamos hacer sin problemas. Cul ser el evento que active el sonido del helicptero?, Bueno como nunca he manejado un helicptero, imagino que cuando se le da ignicin o se enciende, el motor inicia su sonido, esto significa que de los eventos que tenemos, el evento ms adecuado es E, que en realidad llama al mtodo heli blade (este mtodo hace que las hlices se muevan), por lo tanto vamos a analizar este procedimiento, para poder determinar cual es el mejor lugar para llamar al sonido. Recuerde, que cuando la nave enciende, el sonido deber sonar hasta que se apague.

Veamos el como esta hecho el mtodo heli blade, dirijase a y haz un clic en edit, y aparecer los detalles del mtodo, normalmente aparecen cerrado y haz un clic en el , para abrirlo.

Vamos a introducir la instruccin de play sound, debajo del primer ciclo Loop, arratre el icono que representa la instruccin:

hasta que llegue debajo de la primera instruccin helicopter.motorwing, como se muestra en la siguiente figura:

De inmediato aparecer la siguiente ventana, seleccione la opcin import sound file, la cual le mostrara un ventana de exploracin para que usted busque el archivo de sonido, con el sonido del motor del helicptero.

Acerque el curso al extremo derecho de esta ventana y cuando aparece la flecha con puntas en los extremos, haga clic sin soltarlo y ample el tamao de la ventana, para que pueda ver el botn de import y cancelar. Busque la carpeta donde se encuentra el archivo .wav, con el sonido, haga un clic en el archivo paea seleccionarlo, en nuestro caso el archivo se llama helicoptar.wav, y luego haga clic en importar.

Despus de este proceso, aparecer

Ya se agrego al mtodo, la instruccin para que cada vez que se encienda el helicptero, suene el motor, ahora vaya a probarlo, verifique que tenga los parlantes conectados al computador y que el volumen no est pausado, buen viaje.

Mis eventos hasta el momento:

La sentencia if then else, en el caso de Alice, se presenta como If/Else, que se utiliza para evaluar condiciones, ya sea que sea verdadera o falsa y as tomar un decisin. Por ejemplo, queremos hacer una adivinanza, con colores, entonces vamos a seleccionar un color y le vamos a preguntar a algn amigo (a), para ver, si adivina el color. Por tanto, necesitamos 2 variables, miColor y amigoColor, para poder comparar una variable con la otra. Creamos una variable, y ponemos el nombre miCcolor

1.Damos el
nombre de la variable

2.Tipo es
Other, String

3. Y el valor
ser morado

1. Clic en World 2.Clic en Properties

3.Clic en crear una


nueva variable

Aqu aparece, nuestra primer variable creada, como podemos ver, identificamos su nombre:________________________ y su contenido:______________________. Que tipo de datos es? ____________________

Ahora crearemos la segunda variable, y su contenido lo dejaremos en blanco., porque no sabemos que color va decirnos nuestra amiga (o), cuando le preguntaremos. Modifiquemos, la opcin value de la variable, y seleccionamos other y sustituimos default string por un espacio en blanco y hacemos clic en aceptar.

Ahora vamos a necesitar una funcin, para solicitarle a usuario que nos conteste una pregunta, en este caso le interrogaremos con: Adivina en que color estoy pensando?, para ello usamos la funciones ASK USER, preguntarle al usuario y seleccionamos. Pero primero debemos arrastrar la variable amigoColor al rea de programacin

Al saltarla, nos pedir que le asignemos el valor y este caso, usamos el place holder (modo contenedor) y le asignamos default string (cadena o palabra por omisin), como se muestra en la siguiente figura:

Ahora debemo agregar o insertar la funcin en el lugar Asignacin de espacio para el contenedor, en este caso, donde esta default string, o lo que es lo mismo, dar el valor a set value to. seleccionemos default string.

Clic en funciones

Buscamos las funciones ASK USER, y escogemos:

Esta funcin , nos permitir, hacer la pregunta al usuario, para que adivine el color que seleccionamos, obviamente se supone que el usuario no sabe que nosotros, escogimos el color morado. Y es de esta manera por medio de la instruccin IF/THEN, hacemos la evaluacin

Arrastramos, la funcin hasta el set value to:

Al soltar la funcin, nos da varias opciones, en este caso vamos a seleccionar Enter a String:

Bien, lo que sigue es, hacer un clic en Enter a String y nos dejara entrar no modo edicin, para escribir nuestra pregunta: Adivina en que color estoy pensando?

As deber quedar, despus de dar enter, para insertar la pregunta:

Excelente, ya tenemos la captura de datos, si quieres puedes hacer un clic en play, para que veas la pregunta, deber aparecer algo como lo que sigue:

Claro esta, que an, no evaluamos nada an, nos hace falta usar la instruccin , recuerda que esta funcin, nos permitir comparar el valor de la variable amigoColor, con nuestra variable miColor, que le asignamos el valor morado. Entonces vamos a hacer la evaluacin, para ello debemos arrastrar la sentencia de programacin, como se muestra en la siguiente figura: , al rea

Arrastre de la parte inferior el world.my first La instruccin, le solicitara si va a evaluar falso method, la instruccin If/Else o verdadero, en nuestro caso, lo haremos con el verdadero

Seleccionemos entonces, la opcin true como se muestra en la figura de la izquierda. Y nos deber aparecer, en el rea de programacin la sentencia If/Else, lista para que podamos realizar la comparacin de variables

OK, Ahora debemos arrastrar la variable amigoColor hasta el rea de true del If/Else

Al soltarlo, nos preguntara sobre el tipo de comparacin, en este caso queremos comparar que amigoColor, sea igual a miColor

El operador igual es, representando por un doble igual, ==. Seleccinalo y ve a expresiones (expressions), para poder seleccionar la variable con que vamos a comparar amigoColor. Recuerda que, una expresin es una forma valida en el lenguaje de programacin para plantear operaciones.

Aqu construimos la expresin, que leemos: Si amigoColor es igual a miColor, entonces, sino

Asi queda la expresin completa en la estructura If/Else, lo que sigue, es enviar un mensaje, para el caso en que colorAmigo sea igual a miColor, que sera Correcto, adivinaste y en el Else, el caso contrario.

Al dar

, podrs evaluar la pregunta,

si contestas morado, deber aparecer mensaje mensaje ser:

, en caso contrario, el

Prueba, cambiando este programa, y pregunta por un nmero, en vez de un color, para que te familiarices con la sentencia If/Else.

Hacerlo juntos, se utiliza para procesos paralelos, por ejemplo cuando queremos que un humanoide mueva los brazos a la misma vez, al menos debe existir un mtodo que servir para mover los brazos derecho e izquierdo, si ejecutsemos este mtodo, se mover, primero un brazo y despus el otro, por lo tanto, se trata de un proceso en paralelo, y lo hacemos con la sentencia Do together, veamos el siguiente ejemplo: Coloquemos 3 figuras iguales, vamos a la opcin Luego, vamos a la galera de imgenes llamada PEOPLE, es la que se muestra en Figura 2. Si Ud. Lo desea puede escoger cualquier figura, pero recuerde que queremos mover los brazos y debe constatar que la figura que seleccione lo permita. ,

Seleccionamos a la clase Alicia, Luego vamos renombrarla, yo como se muestra en la Figura le pondr Alicia, como se 3. y la insertamos en el muestra en la Figura 4. mundo, como lo muestra la figura 4.

Figura 1

Figura 2

Figura 3

Figura 4

Bien ahora queremos, crear un mtodo en Alicia para mover las manos, para ello hacemos un clic en Alicia y nos vamos a la propiedad Mtodos y creamos un nuevo mtodo y lo llamamos, moverBrazos, como se muestra en la figura 5.

Figura 6 Figura 5 Selecciona a Alicia, y haz un Clic en la Adems debemos seleccionar el brazo opcin create a new method. derecho de Alice, como se muestra en la figura 6.

Recuerde que debemos usar la estructura Do Together, entonces la insertamos en al rea de programacin, como se muestra en la figura 7.

Figura 7 Ahora debemos arrastrar la instruccin rightArm roll, hasta el do together, como se muestra en la figura 8, y soltarlo.

Figura 8 Seleccionamos el movimiento hacia la izquierda del brazo derecho y la cantidad ser de un de revolucin, como se indica en la figura 9. Ahora debes seleccionar, el brazo izquierdo y hacer los mismo

Figura 9

As debera quedar nuestro mtodo de moverBrazos

Ahora, asignmoslo al evento principal, llamado: when the world start

As, queda ya el mtodo asignado al evento, Haz un clic en el triangulo del y dale play y veras a Alicia moviendo los brazos. selecciona Alicia y luego el mtodo que acabamos de crear moverBrazos

Ahora puedes agregar al mtodo, el procedimiento inverso, para los brazos vuelvan a la posicin inicial, y entonces le habras enseado a Alice a mover los brazos, prueba este cdigo:

CONCEPTO DE FUNCION Pedro J. Fonseca Solano Una funcin es una expresin compuesta por varias expresiones, que nos permite resolver el problema de realizar un clculo o cmputo de un fenmeno medible. Desde el punto de vista computacional, las funciones en algunos casos vienen ya preestablecidas dentro de los lenguajes computacionales, como extensiones del mismo, para hacer ms fcil la labor de programacin de soluciones a problemas, por ejemplo: en la mayora de lenguajes existe la funcin Square root, sqr o raz cuadrada, sin embargo los lenguajes serian sumamente extensos, si incluyeran todas las funciones. Por ello existen las funciones definidas por el usuario, para que los usuarios puedan crear sus propias funciones, para resolver problemas. En el caso de Alice 2.2, existen propiedades, mtodos y funciones, para el mundo y para cada elemento de insertemos en el mundo. Las porpiedades, nos muestras los diferentes valore o estados, de las variables dem ambiente, dependiendo de donde nos situemos, en el caso del World, como se puede observar, tenemos el color de la atmosfera, que es azul, pero que podemos cambiar de acuerdo a nuestras necesidades. En el caso de los mtodos, world presenta:

Las funciones del Mundo, son todas aquellas disponibles en Alice, desde que iniciamos el programa, aqu se presentan las 9 categoras principales, entendiendo cada categora tiene varias funciones.

En el caso de la funciones definidas por el usuario, prcticamente cualquier expresin matemtica puede ser escrita en dicho lenguaje y construida paso a paso como una funcin, por ejemplo, la suma resta y multiplicacin, pueden convertirse en funciones. Si deseo crear una suma, obviamente, debo conocer cuntos son los valores que quiero sumar y a partir de aqu, puedo construir un mtodo que describa paso a paso la sumatoria de N valores y una vez, =1 = + 1. Para que sea ms representativo, usaremos 5 valores y los sumaremos 12 + 3 + 6 + 14.5 + 10. Dichosamente, en el computador, podemos crear un programa para que sume cualquier cantidad de valores. En Alice, iniciamos creando las variables y declarndolas con el valor de cero. Eto lo hacemos en World.

La variable cantidadNumeros, se utilizara para determinar cuantos valores vamos a sumar, en nuestro ejemplo, le daremos el valor de 5. n el caso de la variable Resultado, la utilizaremos para acumular la suma de los valores ledos (12,+ 3, 6, 14.5 y 10). La variable valor, la usaremos dentro de un ciclo, para ir introduciendo en el programa los 5 valores La funcin completa, que hace dicha sumatoria, se presenta a continuacin, y procederemos a explicar detalladamente sus partes. Ahora bien, para escribir la funcin debemos primero que nada, hay que ir a World y seleccionar functions y luego crate a new functions

Le asignamos el nombre sumatoriaN y es de tipo numrico, como se muestra en el cuadro de derecha. Haz un clic en OK, y estaremos listos para iniciar con la creacin de nuestra funcin.

Este es el rea para escribir nuestra funcin, note que toda funcin siempre al final tiene un valor de retorno, aqu podemos retornar el valor o resultado de nuestra funcin, no importa lo compleja que sea nuestra funcin, al final nos dar un nico valor, aunque podamos usar otros valores si fuese necesario, en el caso de la sumatoria, lo que nos interesa de momento es el resultado final.

1 2

4 5 6

Como se muestra en la primera lnea de cdigo de la funcin, a la variable cantidadNumeros, solicitar al usuario que digite la cantidad de nmeros que queremos sumar, es el usuario el que dar este valor, se utiliza la funcin ask user for a number, que al final dejar en la variable el valor que el usario digite, como se muestra en la siguiente figura:

Aqu, se nos pregunta sobre cuantos valores deseamos sumar, pues el programa suma N valores, lo que ocurre es que si deseamos sumar 1000 o ms, tardaremos mucho digitando los mil nmeros o ms, por lo que probaremos el programa con 5 valores.

Observe, que los valores de las variables, se muestran con la idea de seguir el programa y ver los cambios conforme se va ejecutando dicho programa.

A la interrogante, Digite el valor No:0, digitamos el valor 12 y hacemos clic en aceptar

Observe, que la variable resultado ahora tiene el primer valor que fue el nmero 12 y ahora debemos escribir el segundo valor, el nmero 3 y hacer clic en aceptar.

Note, ahora como los valores cambian, pues la variable valor, tendr siempre el ltimo valor digitado de los N valores, que decidimos sumar, adems el resultado va acumulando la suma de lo que tiene la variable resultado ms lo que tienen la variable valor, es decir 12 + 3 = 15.

Ahora escribimos el tercer valor, y digitamos el nmero 6, despus de hacer clic en aceptar, tendremos las variaciones del caso, es decir, resultado ser igual a _____ y valor ser igual a ____.

Puedes, verificar los valores de las variables, que pusiste en los espacios anteriores, donde te solicitamos los valores y verificar que todo va bien. Excelente, el cuarto valor ser 14.5

Y finalmente, el ltimo valor ser el nmero 10, pues hemos sumado 5 nmeros y el resultado final es:

Pues tenemos; 12 + 3 + 6 + 14.5 + 10 = 45.5, como se muestra en la pantalla final

Funcin Random number en Alice


El uso de nmeros aleatorios o al azar, en cualquier lenguaje de programacin es importante, para crear variables, que no sabemos qu valor van a tomar en un momento determinado. Sabemos cul es su valor mnimo y mximo, pero cuando invocamos la funcin random no sabemos cual valor se va a producir. Ejemplo: Primero aprenderemos como carear una variable en Alice Seleccionamos el mundo en crear una nueva variable , haciendo un clic y nos vamos a properties y hacemos un clic

Clic

Le damos el nombre azar a la variable, aue sea de tipo numrico y con valor inicial de 1, como se muestra en la siguiente figura.

Nombre

Clic en OK para crearla

Tipo

Valor

Si observamos los detalles el mundo, notamos que ya la variable azar esta creada como se muestra en la siguiente figura.

Para ver dicha variable los podemos hacer de varias formas, la primera, que personalmente me parece mas simple es: hacer un clic derecho en la variable opcin watch this variable, mostrar esta variable. y seleccionar la

y al darle play, se mostrara dicha variable con el valor de 1, que fue el valor que inicialmente se le asigno.

La otra forma es utilizando la instruccin world.my first method.

(imprimir), en el rea de programacin

Arrastre la instruccin contorno esta en verde.

, hasta el rea de programacin y sultela cuando el color de su

al soltarlo aparecer: donde debemos seleccionar objetos y buscamos nuestra variable, como se muestra en la siguiente figura:

y a hacer clic en world.azar, aparecer los siguiente:

Al darle

, se mostrara al final de la pantalla lo siguiente

Cunto vale la variable azar?, 1 o 1.0, parece algo sin importancia, pero en los lenguajes y ambientes de programacin, esas representaciones hacen referencia a dos tipo de valores, enteros y fracciones, donde 1 es un entero (integer) y 1.0 es una fraccin (real), en el caso de Alice los nmeros enteros los trata como reales, por esa razn, existe la funcin int , que tomo el valor numrico y lo convierte en entero (int) y finalmente lo convierte o pasa como un string, o cadena para imprimirlo. Probmoslo: Vaya a , seleccione la pestaa de

, vaya hasta el final de las funciones de matemtica avanzada (advanced math) y seleccione la funcin figura se lo muestra: y arrstrela hasta , la siguiente

Ahora, debemos seleccionar expresin y luego world.azar

Haga un Clic

Haga un Clic

Excelente !!!, ahora ya tenemos la variable azar con la funcin int, como se muestra en la siguiente figura:

Haga clic en el botn

y vea lo que ocurre: , de lo anterior,

deducimos que la instruccin

, para los nmeros, los toma como reales y en el caso del

clic derecho a la variable con la opcin , muestra al darle play el valor como entero, sin embargo cuando afectamos la variable con cualquier valor, tambin lo muestra como un real, parece que solo lo hace cuando la variable se declara en 1, al inicio y esta no toma ningn otro valor. Lo importante es que Ud., recuerde que si quiere la parte entera de una variable usa la funcin:

Reto, que hace entonces la funcin

, prubalo.

Para continuar y utilizar la instruccin RANDOM, borremos el rea de programacin, haz un clic derecho en la parte anaranjada de la instruccin print y seleccione borrar (delete). Y el rea de programacin world.my first method, nos queda limpia.

Ahora vamos a arrastrar hasta el rea de programacin, la variable azar, para asignarle su valor, arrastre la variable, como se muestra en la siguiente figura:

1. Arrastre
AZAR

2. Seleccione VALUE
(Valor)

3. Seleccione

EXPRESSIONS y escoja world.azar

Una realizado, las instrucciones anteriores, nos quedar la siguiente expresin:

Ahora vamos a arrastrar la funcin random hasta el set value to

Bien, y insertamos la funcin, y se interpreta de la siguiente manera, la variable azar tiene asignado el valor de un nmero aleatorio.

Pero ahora debemos, establecer el rango de los valores aleatorios que queremos, en este caso vamos a fija el mnimo como 1 y el mximo como 5:

1. Haga clic en
, note que es el triangulo del random.

2. Haga clic en,


minimun e introduzca el valor de 1

3. Seleccione
mximum e introduzca el valor de 5

4. Finalmente,
seleccione solo enteros y los fija como true, o sea verdadero

El resultado ser la siguiente expresin:

La variable azar, se le asigna como valor el rango de 1 a 5, de nmero enteros, por lo tanto la salida ser siempre un nmero entre 1 y 4, porque al mximo valor del rango, se le resta 1. , .. y as sucesivamente las veces que hagamos clic en Restart, obviamente slo los valores de 1 a 4, nunca saldr el valor mximo 5. Si deseamos generar los nmeros al azar del 1 al 5, debemos establecer el rango del mnimo 1 y mximo 6., por ejemplo:

Si hacemos clic en el botn

, anote, cual es el valor de azar, y luego haga clic 4 , cada vez que hace clic en restart,

veces en el botn , anote el valor de azar en compare los valores con sus compaeros.

Veces: 1

1. Explique que es un numero al azar o aleatorio? 2. Cul es la diferencia entre usar el IntegerOnly como True (Verdadero) o False (Falso) en la funcin que sigue:

3.

, esta funcin sirve para?

Amigas y Amigos, espero que sea de utilidad para ustedes, como lo ha sido para m, comentarios y sugerencias a:

Potrebbero piacerti anche