💾 Archived View for gamifi.cat › blog › 2016-12-08_BJC_7 › index.html captured on 2024-05-10 at 12:00:31.
⬅️ Previous capture (2024-02-05)
➡️ Next capture (2024-06-16)
-=-=-=-=-=-=-
<!doctype html> <html lang="ca"> <head> <meta charset="utf-8"> <meta name="keywords" content="blog, cultura lliure, internet, programari lliure, snap, gemini, fediverse, llengua catalana, catala"> <title>Curs BJC 4: Mur, endevinar nĂşmero i tauler - Gamifica't!</title> <link rel="stylesheet" href="../../static/style.css"> <link rel="shortcurt icon" type="image/svg" href="../../img/favicon.svg"> </head> <body> <header class="header"> <a href="#main" class="skip">Salt al contingut</a> <a href="../../" class="logo" ><img src="../../img/logo.svg" width="300" alt="Logo Gamifica't"></a> <nav class="header-right"> <a href="../">Blog</a> <a href="../../projectes/">Projectes</a> <a href="../../glossari/">Glossari</a> <a href="../../contacte/">Contacte</a> <a href="../../blog.xml" class="logo" ><img src="../../img/rss.png" width="32" alt="RSS Gamifica't"></a> </nav> </header> <main id="main"> <div class="page"> <div class="blog-post"> <h1>Curs BJC 4: Mur, endevinar nĂşmero i tauler</h1> <p class="meta">2016-12-08</p> <p>Estic cursant el MOOC The Beauty and Joy of Computing i estĂ molt i molt bĂ©. Ara, porta temps i esforç: en diuen “hard fun” (diversiĂł dura, diguem). La cosa Ă©s que l’he anat fent però hi ha coses que no em surten. I aquĂ ve el repte de debò: el de no abandonar.</p> <p>La quarta setmana implica diverses activitats: primer, construir un bloc “max-min” per desprĂ©s dibuixar un mur. Tot plegat, ens servirĂ per seguir amb el joc del tres en ratlla (Tic Tac Toe) de la segona setmana. A mĂ©s, crearem un joc d’endevinar el nĂşmero: “Number guessing game”.</p> <p><a href="../2016-09-10_BJC/index.html">Continguts del curs BJC</a></p> <h2>Predicats i lògica</h2> <p>Els blocs punxeguts sĂłn “predicats”. I sempre responen amb un d’aquests valors: cert o fals. I d’aquests blocs se’n diuen “booleans”. Si els cliquem, ens diuen o una cosa o l’altra. En aquesta unitat, el primer que ens fan crear al curs Ă©s un nou bloc de “mĂ©s gran o igual que”.</p> <p>Snap! (com Scratch) porta per defecte tres blocs de predicat per equivalències entre nĂşmeros. Els trobem a la categoria d’operadors: un de “mĂ©s gran que”, un altre de “mĂ©s petit que”, i un altre “igual que”. Aquest darrer, el vam fer servir al projecte del ratpenat volador interactiu per saber si la resposta de l’usuari era igual a la resposta correcta.</p> <p><img src="../../img/snap/bjc-predicats.png" alt="bjc-predicats" /></p> <p>En aquest exercici, doncs, creem el nou bloc i comprovem que funciona posant-hi valors diferents. Per crear un bloc de predicat (punxegut), hem d’indicar, al crear-lo, a quina categoria de blocs volem que pertanyi. En aquest cas, a operadors. De nom, li posarem “>=” i crearem dues ranures numèriques per a cada costat dels sĂmbols: un abans del “>” i un altre desprĂ©s del “=”. I ja el tenim! :)</p> <p>A la tercera setmana, dedicada a predicats i condicionals, ja vam començar a trastejar predicats amb el bloc “mod” per saber si un nĂşmero era parell o imparell. A dins del bloc, però, haurem d’indicar que reporti una cosa o altra (operador “or”). Una cosa que reportem Ă©s que el primer nĂşmero (a) sigui igual al segon (b); l’altra cosa que reportem, Ă©s que el primer nĂşmero (a) sigui mĂ©s gran que el segon (b).</p> <p>Et voilĂ ! AquĂ un nou bloc que ens permet comprovar si un nĂşmero Ă©s igual o major que un altre :) Per exemple, si li preguntem al bloc (posant els valors a les ranures i clicant-l’ho) “És 3 mĂ©s gran que 5?”. La resposta serĂ : FALS. Si li preguntem: “És 3 mĂ©s petit que 5?” La resposta serĂ : CERT.</p> <p>Hi ha moltes maneres de definir-lo perquè podrĂem usar condicionals. A mi m’agrada aixĂ i aixĂ el deixo.</p> <p><img src="../../img/snap/bjc-major-igual.png" alt="bjc-major-igual" /></p> <p>DesprĂ©s d’aquest bloc de “>=”, se’ns fa crear un altre bloc “max-min”, que Ă©s un bloc rodĂł. Els blocs rodons sĂłn “reporters” i això significa que sempre reportaran un valor. NomĂ©s cal clicar sobre el bloc perquè ens doni aquest valor, que pot ser en nombres o en lletres. El nostre nou bloc “max-min” Ă©s “reporter” de la categoria de blocs d’operadors: els verd clar. I ens permet saber quin nĂşmero Ă©s el mĂ©s gran dels nĂşmeros que hi posem.</p> <p>Dit d’altra manera, el bloc “max-min” permet posar-hi tres valors. I quan el cliquem, ens indica quin dels tres nĂşmeros Ă©s mĂ©s gran. DesprĂ©s, se’ns fa fer altres malabarismes de lògica amb els operadors.</p> <h2>Mur de maons</h2> <p>Per seguir exercitant l’abstracciĂł, en aquest exercici de la quarta setmana hem de dibuixar un mur de maons. Per fer-ho, hem de crear primer els maons en bits ;) A mĂ©s dels maons, tambĂ© fabricarem el morter per tal de fer-los encaixar. Com al mĂłn fĂsic!</p> <p>La tècnica Ă©s la mateixa que pel tres en ratlla: primer creem un maĂł (brick) o un quadrat (tile) i desprĂ©s repetim les vegades que vulguem per tal posar mida al nostre gust. La dificultat del mur de maons Ă©s que hem de crear tres blocs nous: un “RowA” (un maĂł sencer), un “RowB” (un mig maĂł pels cantos) i un “mortar”, que Ă©s pel morter o separaciĂł entre maons.</p> <p>M’ha agradat molt aquest exercici! :) Jo, que sĂłc experta en anar picant de cap contra totes les parets que trobo, per fi em puc fer una paret al meu gust.</p> <p><a href="https://snap.berkeley.edu/project?user=gamificat&project=BJC.x12-w04e04-brick-wall">Mur maons a Snap!</a></p> <h2>Endevina el nĂşmero</h2> <p>Un joc de preguntes facilet per començar a programar Ă©s el d’endevinar el nĂşmero. En anglès, “Number Guessing Game”. Programem un objecte per tal que 1) triĂŻ un nĂşmero 2) ens pregunti quin nĂşmero Ă©s i 3) que ens digui quin nĂşmero era quan l’encertem. Som-hi!</p> <p>Si ens fixem, s’ha creat un nom bloc d’aparença titulat “Number guessing game”. A dins, s’hi ha posat una variable “secret number” i se li dĂłna un valor random de l’1 al 10, Ă©s a dir, que el nĂşmero que triĂŻ la mĂ quina serĂ entre aquests valors. Tot seguit, un bloc de “repeteix fins” (fins que la resposta sigui el nĂşmero triat, que no sabem, perquè l’ha triat la mĂ quina a l’atzar). Per construir aquest bloc de predicat que comprova si la resposta Ă©s correcta, necessitem un bloc d’operadors “igual que”, el bloc de sensors de la “resposta” i el de variable “nĂşmero secret”.</p> <p>Mentre no responguem correctament, s’anirĂ repetint l’acciĂł de preguntar i esperar. Ara bĂ©, quan responem correctament al nĂşmero que la mĂ quina ha pensat, ens diu que “l’hem endevinat. Que el nĂşmero era… ” I diu quin era. Per construir aquest bloc digues, necessitem un d’operadors que permet unir lletres, nĂşmeros, blocs… TambĂ© necessitarem el bloc de la variable amb el nĂşmero secret.</p> <p><img src="../../img/snap/bjc-number-guessing.png" alt="bjc-number-guessing" /></p> <p>Ara que tenim la plantilla del joc bĂ sic, farem algunes millores d’interacciĂł:</p> <ul> <li>El nostre objecte ha de donar la benvinguda al jugador/a i demanar-li com se diu. La resposta, amb el nom de la persona, ens servirĂ pel feedback de la resposta: farem que l’objecte ens digui si el nĂşmero que hem posat Ă©s correcte o no. Cada cop que ho digui, farĂ servir el nom del jugador/a. Per exemple: “No, Maria, aquest no Ă©s el nĂşmero secret. Prova de nou!” o “Molt bĂ©, Maria, l’has encertat! El nĂşmero secret era el 3”.</li> <li>TambĂ© haurem de fer servir el nom del jugador/a quan la resposta no Ă©s correcta. Programarem que el nostre objecte respongui al jugador/a si el nĂşmero que ha posat Ă©s mĂ©s gran o mĂ©s petit que el nĂşmero secret: “No, Maria, el nĂşmero secret Ă©s mĂ©s gran. Prova de nou!”</li> <li>De moment, el nostre projecte nomĂ©s tria un nĂşmero entre 1 i 10. Farem que el jugador/a decideixi quin Ă©s el nĂşmero mĂ xim, Ă©s a dir, de l’1 al 100, 100 serĂ el mĂ xim; de l’1 al 500, 500 serĂ el mĂ xim. (I aquĂ reciclarem el bloc “max-min” de l’exercici anterior).</li> <li>TambĂ© haurem de crear una nova variable per saber quants intents ha trigat el jugador/a endevinar el nĂşmero. Quan el jugador/a endevini el nĂşmero secret, li farem dir a l’objecte el nĂşmero d’intents.</li> <li>Finalment, hem d’apel·lar al nom del jugador/a quan el felicitem al encertar el nĂşmero.</li> <li>Per posar-hi la guinda, se’ns demana que variem la resposta de l’objecte: si el jugador/a no encerta durant tres vegades, que no digui sempre el mateix. En una ocasiĂł pot dir: “No, Maria, el nĂşmero secret Ă©s mĂ©s gran. Prova de nou!” i, en una altra ocasiĂł, pot dir: “No, Maria, segueix sent massa gran. Prova un altre nĂşmero”.</li> </ul> <p>El meu joc no Ă©s perfecte però funciona: l’únic que no he acabat de polir Ă©s això que doni respostes diferents. Fa grĂ cia posar tot un joc a dins d’un sol bloc :) AquĂ el meu “Number guessing game”. Li he fet bloc addicional d’introducciĂł. Mola el bloc de label! No ve per defecte, has d’importar les eines. Clica a la icona del document i selecciona “Import tools”. I, apa, ja el tenim! :)</p> <h2>Tres en ratlla 2</h2> <p>Per acabar les prĂ ctiques d’aquest quarta setmana, hem de recuperar el nostre joc del tres en ratlla de la segona setmana i fer-li algunes millores. I no em surt! Quina frustraciĂł, cullera! :_(</p> <p>Hem d’aconseguir que cada cop que posem l’objecte a un quadrant de la graella, ens digui a quin nĂşmero de la graella estem. Si la graella fa 3Ă—3, el bloc central serĂ el cinquè, per exemple. Hem de crear un bloc “which cell?” (quina cel·la?). Per construir-lo, hem de crear-ne dos mĂ©s abans: un per “which row?” (quina fila?) i un altre per “which column?” (quina columna?).</p> <p>Entenc el concepte però no sĂ© com implementar-ho a Snap! He suposat que necessito un “For Block” (ja que no sabem de quina mida Ă©s el nostre tauler, i suposo que cada (i) Ă©s un quadrant de la graella…) però no entenc com vincular la posiciĂł x o y amb la cel·la que reporta.</p> <p>El mĂ©s frustant de tot Ă©s que he demanat ajut al fòrum però m’he quedat igual… En fi, aviam si algun dia el puc acabar: seria molt satisfactori. I segur que Ă©s una tonterieta, però m’he bloquejat completament… I tot i que penso en en Papert i la fòbia a les mates que em van fer agafar de peque, no aconsegueixo desbloquejar-me. Tampoc tinc un entorn molt favorable, diguem, aixĂ que tot bufa en contra, concentraciĂł i autoestima incloses.</p> <p>[ActualitzaciĂł de l’11 de desembre de 2016: M’ha sortit! GrĂ cies, a en Robert, un instructor del curs. Ara, he suat la cansalada, eh! :) La cosa Ă©s que encara no he acabat el joc i el que s’acaba aviat Ă©s el curs… AquĂ la imatge del bloc “which cell?”. Fi de l’actualitzaciĂł de l’11 de desembre de 2016]</p> <p><img src="../../img/snap/bjc-which.png" alt="bjc-which" /></p> <p>En fi, seguim… De seguida pugui, repasso la cinquena setmana: el joc d’endevinar la paraula “Word guessing game” (que no vegis els malabarismes amb els operadors). La sisena setmana tractava de fer un joc nosaltres, un “Fun Project” (projecte divertit): jo vaig fer un penjat en anglès. Guanyes si encertes tres paraules: totes tenen 6 lletres perquè no en sĂ© mĂ©s… AquĂ el joc del penjat: “Hangman Game”, en anglès.</p> <p><a href="../2016-09-26_BJC_6/index.html">Snap!Lab – Joc del Penjat</a><br /> <a href="../2016-12-09_BJC_8/index.html">Snap!Lab – Endevina la paraula</a></p> </div> </div> </main> <footer> Internets duals: gemini://gamifi.cat<br> <a href="../../llicencies/">Diverses llicències</a> / <a href="../../kukis/">PolĂtica de Kukis</a><br> ♥ Fet amb paciència i tecnologies lliures ♥ </footer> </body> </html>