Curs BJC 5: Endevina la paraula
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 :)
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
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):
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 :)