Entrada de dades
Acceptar l’entrada de l’usuari en els jocs és una gran manera de fer jocs interactius, en els quals els jugadors poden posar nom als seus personatges o respondre a preguntes plantejades pel joc.
En Arcade, el bloc ask_for_string_with_text
permetia als desenvolupadors demanar als usuaris amb un teclat virtual per respondre a les seves preguntes. Veurem com fer-ho en Python utilitzant la funció game.ask_for_string
.
Concepte: Noms
Guardar l’entrada de l’usuari en variables és útil, ja que permet que els valors que l’usuari introdueixi al joc continuïn existint, en lloc de ser ignorats.
Exemple #1: Emmagatzemar l’entrada de l’usuari
- Crea un nou projecte d’Arcade.
-
Afegeix el següent codi:
dades = game.ask_for_string("Dona'm dades")
- Identifica quin tipus de dada retorna
game.ask_for_string
. - Identifica que fa “Dona’m dades” dins de
game.ask_for_string
.
En aquest exemple, demanem a l’usuari que introdueixi dades utilitzant la funció game.ask_for_string
. El missatge que es mostra a l’usuari és "Dona'm dades"
.
Les dades introduïdes es guarden en la variable dades
per a ser utilitzades més tard.
Tasca #1: Quin és el teu nom?
- Comença amb el codi de l’exemple #1.
- Canvia el prompt per demanar el nom de l’usuari (
"Quin és el teu nom?"
). - Després de demanar el seu nom, utilitza
game.splash
per mostrar el seu nom. - Afegeix un missatge curt a
game.splash
per fer que aprega per pantalla “Hola, [nom de l’usuari]!”; on[nom de l'usuari]
és el nom que l’usuari ha introduït. - Repte: Pregunta a l’usuari pel seu color favorit. Respon amb un
game.splash
que repeteixi el seu color favorit.
Exemple #2: Respostes immediates
- Crea un nou projecte d’Arcade.
-
Afegeix el següent codi:
game.splash("M'agrada " + game.ask_for_string("Quin menjar t'agrada?"))
- Identifica com s’utilitza la resposta de
game.ask_for_string
. - Identifica si la resposta de l’usuari està disponible per ser utilitzada de nou després de
game.splash
En l’exemple anterior, la resposta de game.ask_for_string
s’utilitza sense guardar el resultat en una variable. El resultat s’utilitzarà en game.splash
, però és inaccessible fora d’això.
Tasca #2: Fer una altra pregunta ràpida
- Comença amb el codi de l’exemple #2
- Afegeix una altra línia que continga un
game.splash
- En el nou
game.splash
, pregunta a l’usuari què ha dinat ambgame.ask_for_string
, per mostrar-ho en la pantalla.
Tasca #3: Conte
- Crear un nou projecte d’Arcade.
- Crea una història curta que tinga almenys 5 frases
- En cada frase, tria una o dues paraules que siguen importants per a la història
- Elimina aquestes paraules de la frase i reemplaça-les amb la part del discurs que es relaciona amb elles (nom, adjectiu, etc.)
- Després d’haver triat paraules per a cada frase, utilitza
game.ask_for_string
per demanar a l’usuari que et done paraules per reemplaçar les originals, i guarda cada una en una variable - Després de demanar totes les paraules, crea una cadena per a cada frase amb les paraules reemplaçades
- Utilitza
print
per imprimir cada frase en ordre
Ací tens un exemple de frase per mostrar cada pas:
Pas 1: Fer una frase
El meu amic Joan em va dir que la seua habitació estava neta.
Pas 2: Triar paraules
“Joan” i “neta” són paraules importants per a la història
Pas 3: Reemplaçar les paraules
El meu amic NOM em va dir que la seua habitació estava ADJECTIU.
Pas 4: Demanar a l’usuari
nom = game.ask_for_string("Dóna'm un nom")
adjectiu = game.ask_for_string("Dóna'm un adjectiu")
Pas 5: Crear una frase
frase = "El meu amic " + nom + " em va dir que la seua habitació estava " + adjectiu + "."
Pas 6: Mostrar en la consola
print(frase)
Avaluació
Crea un document i:
- Respon a les següents preguntes:
- Explica com acceptar l’entrada de l’usuari pot fer els teus jocs més interessants i interactius.
- Què fa guardar el valor en una variable que utilitzar-lo directament en un
game.splash
no permet?
- Resol els següents exercicis curts i pega el codi en el document:
- Fes un programa que demane a l’usuari què vol que diga el programa, i després ho mostri amb
game.splash
. - Fes un programa que demane a l’usuari què ha dit, i després ho envie a la consola amb un missatge que diga “Has dit [el que ha dit l’usuari]”, utilitzant
print
. - Fes un programa que demane a l’usuari què vol que diga el programa, i després ho mostri amb
game.splash
dues vegades. - Fes un programa que demane a l’usuari un nom d’animal, i després quin so fa aquest animal. Després, el programa ha de mostrar “L’[animal] fa [so]”, on [animal] és el primer que has introduït, i [so] és el segon.
- Fes un programa que demane a l’usuari què vol que diga el programa, i després ho mostri amb
Puja el document a l’aula virtual (tasca 2.1.3).