Meta: Crea frases a la medida.
Vocabulario: empty?, se (sentence), stopall
to startup
set "question "pos [-200 140]
set "announce "pos [-200 140]
text1, ct hidetext
setbg 0
t1, setsh "critter
conversation
end
to conversation
question [¡Hola! ¿Deseas hablar? (Teclea SI o NO.)]
if answer = "no [stop]
if empty? answer [stop]
question [¿Cuál es tu nombre?]
if empty? answer [stop]
text1, ct insert "Hola, insert char 32 insert answer insert "! showtext
question (se answer [, Yo no tengo nombre. Por favor dame un nombre.] )
if empty? answer [stop]
text1, ct insert [Yo soy] insert char 32 insert answer insert "!
question [¿Qué color te gusta más: rojo, amarillo, naranja, verde, azul, o violeta?]
if empty? answer [stop]
changecolor
question (se [ A mi también me gusta el] answer [. ¿Qué deporte te gusta más: football, baseball, basketball, o soccer?] )
insist
announce (se [¡A mi también me gusta más el] answer [! ¡Mira cómo me convierto en una pelota!] )
setsh answer
text1, ct insert [Soy una pelota de] insert char 32 insert answer insert "!
end
to changecolor
if answer = "rojo [setbg "red]
if answer = "amarillo [setbg "yellow]
if answer = "naranja [setbg "orange]
if answer = "verde [setbg "green]
if answer = "azul [setbg "blue]
if answer = "violeta [setbg "violet]
end
to insist
if member? answer [basketball baseball football soccer] [stop]
if empty? answer [stopall]
question [¿Qué deporte te gusta más: football, baseball, basketball, o soccer? (Escribe con cuidado)]
insist
end
to Let's_talk_again!
startup
end
Notas Necesitamos una manera de detener las preguntas si el usuario hace clic en cancel o no responde.
- Después de cada pregunta en el procedimiento conversation, usa el comando:
if empty? answer [stop]
para revisar la respuesta y detener el procedimiento si no hubo respuesta.
- Usa se ("sentence" frase) para incluir una respuesta en una pregunta siguiente o en un anuncio. Ponemos paréntesis ( ) alrededor de se, la respuesta, y cualquier otra cosa que desees incluir.
- En el procedimiento insist, si el usuario hace clic en cancel o no responde no solamente deseamos detener el procedimiento insist, también deseamos detener el procedimiento conversation. Necesitamos detener todo. Por esto, necesitamos usar stopall en este comando:
if empty? answer [stopall]
¿Qué pasa si?
¿Qué pasa si cambias esta línea: if empty? answer [stopall] por esto:
if empty? answer [announce "Good-bye! stopall]
Desafío
¿Puedes escribir tus propias preguntas que incluyan las respuestas del usuario en ellas?
Si el usuario no responde una pregunta, ¿puedes hacer que la criaturita diga o haga algo gracioso antes de detener la conversación?
|