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

  1. Crea un nou projecte d’Arcade.
  2. Afegeix el següent codi:

    dades = game.ask_for_string("Dona'm dades")
    
  3. Identifica quin tipus de dada retorna game.ask_for_string.
  4. 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?

  1. Comença amb el codi de l’exemple #1.
  2. Canvia el prompt per demanar el nom de l’usuari ("Quin és el teu nom?").
  3. Després de demanar el seu nom, utilitza game.splash per mostrar el seu nom.
  4. 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.
  5. Repte: Pregunta a l’usuari pel seu color favorit. Respon amb un game.splash que repeteixi el seu color favorit.

Exemple #2: Respostes immediates

Animació de l'entrada de l'usuari introduint el seu menjar favorit

  1. Crea un nou projecte d’Arcade.
  2. Afegeix el següent codi:

    game.splash("M'agrada " + game.ask_for_string("Quin menjar t'agrada?"))
    
  3. Identifica com s’utilitza la resposta de game.ask_for_string.
  4. 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

  1. Comença amb el codi de l’exemple #2
  2. Afegeix una altra línia que continga un game.splash
  3. En el nou game.splash, pregunta a l’usuari què ha dinat amb game.ask_for_string, per mostrar-ho en la pantalla.

Tasca #3: Conte

  1. Crear un nou projecte d’Arcade.
  2. Crea una història curta que tinga almenys 5 frases
  3. En cada frase, tria una o dues paraules que siguen importants per a la història
  4. Elimina aquestes paraules de la frase i reemplaça-les amb la part del discurs que es relaciona amb elles (nom, adjectiu, etc.)
  5. 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
  6. Després de demanar totes les paraules, crea una cadena per a cada frase amb les paraules reemplaçades
  7. 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.

Puja el document a l’aula virtual (tasca 2.1.3).