Origen
Carpetas de Proyectos
Recursos de Profesores
Recursos de Estudiantes
En INGLÉS
¿Cómo hago?
Lectura
Foro MW
Mapa del Sitio
Búsqueda
Equipo

criaturita 1 2 3 4 5 6 7
Charla con Criaturita 6
Pruébalo
44 KB


Meta:   Adivina el número de la criaturita en este juego de adivinanza.


Screenshot


Vocabulario:   random, > (greater than sign), < (less than sign)

Código
Figuras
Mapa del Proyecto

to startup
set "question "pos [-200 140]
set "announce "pos [-200 140]
setbg 0
t1, setsh "critter
conversation
end

to conversation
make "mynumber 1 + random 100
question [¡Hola! ¡Juguemos a las adivinanzas! ¿Cómo te llamas?]
if empty? answer [stop]
make "yourname answer
question (se :yourname [, adivina un número entre 1 y 100.] )
guessing-game
end

to guessing-game
if empty? answer [stop]
if answer > :mynumber [question (se answer [es demasiado alto.   ¡Prueba otra vez!] ) ]
if answer < :mynumber [question (se answer [es demasiado bajo.   ¡Prueba otra vez!] ) ]
if answer = :mynumber [announce (se "¡Bien, :yourname [! ¡] answer [es el número correcto!] ) stop]
guessing-game
end

to Let's_play_again!
startup
end



Notas

Podemos crear un juego de adivinanza en una conversación.  

  1. En el procedimiento conversation, pide al computador que escoja un número al azar (random) entre 1 y 100 y que lo recuerde creando una variable con este comando:
    make "mynumber 1 + random 100

  2. En el procedimiento guessing-game, compara cada respuesta con mynumber (usando >, <, y = ) y dile al visitante si su número es demasiado alto, demasiado bajo, o justo el correcto.   Ya que deseamos que el usuario siga intentando, será una buena idea crear un procedimiento recursivo sólo para los intentos.   Este procedimiento seguirá ejecutándose hasta que el usuario haya adivinado el número.

  3. Una nota sobre paréntesis y corchetes:

    ¡El procedimiento guessing-game utiliza muchos corchetes y paréntesis!.   Esta es la razón:

    1.   Cuando usamos if necesitamos poner corchetes alrededor de el comando o comandos que el computador debe hacer si la condición es verdadera.

    2.   Ya que estamos incluyendo cada respuesta en la pregunta siguiente, necesitamos usar se para insertar esa respuesta, y necesitamos usar paréntesis alrededor de todo lo que es incluido en la frase.

    3.   Ya que estamos usando grupos de palabras dentro de la frase, necesitamos poner corchetes alrededor de esas palabras.  

    Así que cuando veas esto al final de la línea: ] ) ]
    el primer corchete cierra el grupo de palabras en la frase,
    el paréntesis cierra la frase, y
    el último corchete cierra el comando if.

    Cuando veas esto al final de una línea: ] ) stop ].
    stop está todavía dentro del comando if, y por lo tanto, si la condición es verdadera, el juego se detendrá luego de que el computador anuncie que esa es la respuesta correcta.




¿Qué pasa si?
Intenta un número diferente después de random.   Intenta 50...   intenta 999.   ¿Cuántos intentos te toma, en promedio, adivinar el número ahora?

Intenta dar un nombre diferente a la variable mynumber (en todas partes).   ¿Funciona de igual manera?


Desafío
¿Puedes establecer un rango diferente de números para el juego de adivinanza para que, por ejemplo, el número siempre esté entre 100 y 200? o entre 250 y 500? o entre -100 y 100?




© copyright 2001 - 2008  OpenWorld Learning.   All rights reserved.