Curs BJC 5: Endevina la paraula

2016-12-09

A la cinquena setmana del MOOC The Beauty and Joy of Computing ens demanen crear un joc d’endevinar la paraula: una molt bona excusa per fer malabarismes amb els blocs d’operadors :)

Continguts del curs BJC

Instruccions

El nostre joc consisteix en endevinar una paraula que la màquina “s’ha pensat”. En realitat, li programem una paraula o una llista de paraules :) La cosa és que la màquina (jo hi he posat un ninotet) ens ha de donar tres tipus de resposta:

  • Si encertem la paraula secreta, ens felicita i ens diu el nombre total d’intents que hem trigat a endevinar-la
  • Si no encertem la paraula secreta però encertem el nombre de lletres totals de la paraula, ens diu quantes lletres tenim al seu lloc. Per exemple: la paraula és “book” i nosaltres responem “cook”, ens dirà que tenim tres lletres correctes (les dues “o” i la “k”). Si responem “dark”, ens dirà que tenim una lletra correcta (la “k”)
  • Si no encertem el nombre total de lletres de la paraula secreta, la màquina ens ha de dir quantes lletres té la paraula secreta

Jo, personalment, el trobo un joc difícil per a una persona. (De jugar, no de programar) I més en anglès si no és la teva llengua d’origen. Hi ha moltes paraules al diccionari! I anar calculant en quina posició està cadascuna… En fi, que jo el programo però en faré una versió acotant les paraules a un tema, per exemple: “Endevina l’animal”. I vas posant bitxos, que almenys saps per on camines…

Show me the code

I aquí el codi d’un sol bloc que controla tot el joc! És d’aparença i comanda, i es diu “word guessing game”. A dins, trobem tres blocs que hem creat per l’ocasió:

  • “Is guess correct for secret?” és un predicat (punxegut) i comprova si la resposta de l’usuari és igual a la paraula secreta
  • “Create response for guess secret after number of guesses” és un reporter (rodó) que ens dóna el valor de la resposta, és a dir, que controla el que diu el personatge en funció de la resposta de l’usuari

bjc-word-guessing-game

Dins d’aquest bloc “create response”, en plan ou kinder, hem programat un altre bloc per fer la correspondència entre la llargada de la paraula i les lletres encertades. Aquest altre bloc es diu “count matching letters in guess and secret” i comprova si coincideixen les posicions de les lletres (sempre i quan tinguis correcte la llargada total de lletres de la paraula secreta, si no, et diu que la paraula té tantes o quantes lletres):

bjc-word-guessing-game-2

Et voilà! Ja tenim el joc programat! :) La setmana 6 vaig fer el “Fun Project” que teníem de deures: un penjat o “Hangman game”, en anglès, per cert: guanyes si encertes tres paraules de sis lletres. La setmana 7 va consistir en un examen de preguntes de text sobre el que havíem après fins al moment. Com a punt de inflexió de la meitat del curs. La setmana 8 es parla de llistes, que són una olla però són molt útils :)

Snap!Lab – Llistes de llistes