{"id":18004,"date":"2019-02-08T12:09:59","date_gmt":"2019-02-08T11:09:59","guid":{"rendered":"http:\/\/projectes.xtec.cat\/programacioirobotica\/?page_id=18004"},"modified":"2019-02-08T12:09:59","modified_gmt":"2019-02-08T11:09:59","slug":"sessio-4-quan-sacaba-el-pong","status":"publish","type":"page","link":"https:\/\/agora.xtec.cat\/iesdeltebre\/curs-scratch\/modul-2-i-si-fem-un-joc-o-dos-scratch-3\/sessio-4-quan-sacaba-el-pong\/","title":{"rendered":"Sessi\u00f3 4.  Quan s&#8217;acaba el pong?"},"content":{"rendered":"<h2>Pla de treball<\/h2>\n<div style=\"padding-left: 50px;\">\n<ul>\n<li>Control del final del joc<\/li>\n<li>El concepte variable<\/li>\n<li>Les vides en el joc<\/li>\n<\/ul>\n<\/div>\n<hr \/>\n<h2><strong>No sempre encertem amb la raqueta<\/strong><\/h2>\n<p>Quan juguem al pong i desplacem la raqueta, pot ser que no encertem a tocar la pilota. Hem d&#8217;aconseguir\u00a0controlar quan passa aix\u00f2 per saber que el joc s&#8217;ha acabat i, com veurem despr\u00e9s, decidir si podem continuar o no.<\/p>\n<p><img decoding=\"async\" class=\"alignnone\" src=\"http:\/\/projectes.xtec.cat\/programacioirobotica\/wp-content\/uploads\/usu604\/2017\/06\/scratch-icona_tasques.png\" alt=\"Icona tasques\" width=\"32\" \/><strong>Fem-ho pas a pas<\/strong><\/p>\n<div style=\"padding-left: 50px;\">\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li>Entrem al nostre compte de l&#8217;Scratch i fem una c\u00f2pia del nostre projecte <strong>m2<\/strong><strong>repte31<\/strong>\u00a0i li canviem el nom a <strong>m2repte41<\/strong><\/li>\n<li>En aquest projecte segurament tenim dues raquetes, una vertical i una horitzontal. Eliminem la vertical i ens quedem nom\u00e9s amb la raqueta horitzontal<\/li>\n<li>Afegirem a la part de baix de la pantalla la &#8220;l\u00ednia de la mort&#8221;. Quan la pilota toqui aquesta l\u00ednia el joc s&#8217;acabar\u00e0<\/li>\n<li>Farem servir els <strong>Sensors<\/strong> per detectar quan hi ha aquesta interacci\u00f3 entre la pilota i la &#8220;l\u00ednia de la mort&#8221;. Per poder-ho fer, primer de tot hem de crear un nou personatge que ser\u00e0 precisament aquesta l\u00ednia i que ha de ser de la mateixa longitud que l&#8217;amplada de la pantalla i del gruix i color que m\u00e9s ens agradi. Hem d&#8217;aconseguir aquest resultat<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone\" src=\"http:\/\/projectes.xtec.cat\/programacioirobotica\/wp-content\/uploads\/usu604\/2017\/06\/scratch-pong18.png\" alt=\"L\u00ednia de la mort\" width=\"403\" height=\"247\" \/><\/p>\n<ul>\n<li>Ara nom\u00e9s cal fer la interacci\u00f3 entre la pilota i la l\u00ednia de mort. Podem fer-ho de diferents formes, fent servir els condicionals o amb una estructura iterativa (les dues possibilitats les vam veure al m\u00f2dul 1 a la sessi\u00f3 9). Tant si fem servir una possibilitat com l&#8217;altra, haurem d&#8217;afegir els sensors que controlin la interacci\u00f3 de la pilota amb la &#8220;l\u00ednia de la mort&#8221;, considerant-la com a personatge o b\u00e9 tenint en compte el seu color<br \/>\n<img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-18082\" src=\"https:\/\/projectes.xtec.cat\/programacioirobotica\/wp-content\/uploads\/usu604\/2019\/02\/s4m3liniademort.png\" alt=\"\" width=\"535\" height=\"224\" \/><\/li>\n<\/ul>\n<\/div>\n<hr \/>\n<p><img decoding=\"async\" class=\"alignnone\" src=\"http:\/\/projectes.xtec.cat\/programacioirobotica\/wp-content\/uploads\/usu604\/2017\/06\/scratch-icona_repte.png\" alt=\"Icona repte\" width=\"32\" \/> <img decoding=\"async\" class=\"alignnone\" src=\"http:\/\/projectes.xtec.cat\/programacioirobotica\/wp-content\/uploads\/usu604\/2017\/06\/scratch-repte1.png\" alt=\"Repte 1\" width=\"100\" \/><\/p>\n<p>El joc s&#8217;acaba tamb\u00e9 quan la pilota es troba a una al\u00e7ada menor que la raqueta, encara que no arribi a tocar la &#8220;l\u00ednia de la mort&#8221;, ja que no hi ha possibilitat de reaccionar i recuperar-la. Modifiquem el projecte <strong>m2repte41<\/strong> que tenim obert de forma que el joc s&#8217;acabi quan la pilota estigui m\u00e9s a baix de la raqueta.<\/p>\n<p><img decoding=\"async\" class=\"alignnone\" src=\"http:\/\/projectes.xtec.cat\/programacioirobotica\/wp-content\/uploads\/usu604\/2017\/06\/scratch-icona_pista.png\" alt=\"Icona pista\" width=\"24\" \/> Pista: hem de comprovar si la coordenada &#8220;y&#8221; (posici\u00f3 vertical) de la pilota \u00e9s menor que la coordenada &#8220;y&#8221; de la raqueta.<\/p>\n<hr \/>\n<h2>Volem jugar m\u00e9s d&#8217;una vegada&#8230;<\/h2>\n<p>Que el pong s&#8217;acabi en el moment en que no podem retornar la pilota, no \u00e9s divertit. Hem de tenir m\u00e9s oportunitats per continuar jugant una estona m\u00e9s i aix\u00ed anirem sent m\u00e9s h\u00e0bils. Per aconseguir-ho, afegirem &#8220;vides&#8221; en el nostre joc.<\/p>\n<p>Aquestes &#8220;vides&#8221; han d&#8217;anar disminuint cada vegada que perdem, \u00e9s a dir, anir\u00e0 variant el seu valor. Aix\u00f2 vol dir que si comencem el joc amb 4 vides i perdem, ens quedarem nom\u00e9s en tres i aix\u00ed successivament. Per poder controlar la variaci\u00f3 d&#8217;aquest valor, hem de fer servir un nou concepte, el de <strong>variable<\/strong><\/p>\n<p>&nbsp;<\/p>\n<p><img decoding=\"async\" class=\"alignnone\" src=\"http:\/\/projectes.xtec.cat\/programacioirobotica\/wp-content\/uploads\/usu604\/2017\/06\/scratch-icona_tasques.png\" alt=\"Icona tasques\" width=\"32\" \/><strong>Fem-ho pas a pas<\/strong><\/p>\n<div style=\"padding-left: 50px;\">\n<ul>\n<li>Seguim treballant en el nostre projecte <strong>m2repte41<\/strong><\/li>\n<li>Anem\u00a0al bloc de dades i creem una variable amb el nom de <strong>vides<\/strong> (o qualsevol altre nom que vulguem, tot i que \u00e9s recomanable posar noms que tinguin relaci\u00f3 amb el que volem que guardi per tal que el programa sigui m\u00e9s clar de seguir).<\/li>\n<li>Un cop hem creat una variable, el bloc ofereix les possibilitats seg\u00fcents:<br \/>\n<img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-18084\" src=\"https:\/\/projectes.xtec.cat\/programacioirobotica\/wp-content\/uploads\/usu604\/2019\/02\/s4m2explicaciovariable.jpg\" alt=\"\" width=\"718\" height=\"526\" \/><\/li>\n<li>Un cop creada la variable hem de donar-li un valor inicial que ser\u00e0 la quantitat d&#8217;oportunitats que tenim de perdre abans de qu\u00e8 s&#8217;acabi el joc.<\/li>\n<li>Per tal que cada vegada que comencem el joc la variable &#8220;vides&#8221; parteixi del valor inicial que hem decidit, hem de col\u00b7locar el bloc corresponent a l&#8217;assignaci\u00f3 just despr\u00e9s de la bandera verda.<br \/>\n<img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-18085\" src=\"https:\/\/projectes.xtec.cat\/programacioirobotica\/wp-content\/uploads\/usu604\/2019\/02\/s4m2assignaavidesvalor.png\" alt=\"\" width=\"202\" height=\"96\" \/><\/li>\n<li>El valor de la variable apareix a la pantalla si la hem marcat al definir-la. Podem canviar la forma de visualitzar-la quan estem executant el projecte clicant a sobre.<\/li>\n<\/ul>\n<\/div>\n<hr \/>\n<p><img decoding=\"async\" class=\"alignnone\" src=\"http:\/\/projectes.xtec.cat\/programacioirobotica\/wp-content\/uploads\/usu604\/2017\/06\/scratch-icona_repte.png\" alt=\"Icona repte\" width=\"32\" \/> <img decoding=\"async\" class=\"alignnone\" src=\"http:\/\/projectes.xtec.cat\/programacioirobotica\/wp-content\/uploads\/usu604\/2017\/06\/scratch-repte2.png\" alt=\"Repte 2\" width=\"100\" \/><\/p>\n<p>Afegim en el nostre projecte <strong>m2repte41<\/strong> el control de vides, de forma que vagin disminuint cada cop que la pilota no reboti a la raqueta. <strong>No controlarem ara el final del joc quan s&#8217;acabin les vides<\/strong>, ho farem en la seg\u00fcent sessi\u00f3.<\/p>\n<p><img decoding=\"async\" class=\"alignnone\" src=\"http:\/\/projectes.xtec.cat\/programacioirobotica\/wp-content\/uploads\/usu604\/2017\/06\/scratch-icona_pista.png\" alt=\"Icona pista\" width=\"24\" \/> Pista: un cop creada la variable &#8220;vides&#8221; i que hem establert el seu valor inicial, s&#8217;ha d&#8217;anar restant una vida cada cop que perdem. A l&#8217;Scratch no existeix l&#8217;operaci\u00f3 de resta, podem fer-ho igualment sumant un nombre negatiu (-1). Haurem de fer servir una iteraci\u00f3 per anar repetint l&#8217;acci\u00f3.<\/p>\n<hr \/>\n<p><img decoding=\"async\" class=\"alignnone\" src=\"http:\/\/projectes.xtec.cat\/programacioirobotica\/wp-content\/uploads\/usu604\/2017\/06\/scratch-icona_projecte2.png\" alt=\"Icona projecte\" width=\"32\" \/> <strong>El nostre projecte creix&#8230;<\/strong><\/p>\n<p>\u00c9s el moment de revisar la descripci\u00f3 que hem fet al nostre projecte <b>pinball<\/b> tenint en compte que ens cal decidir i afegir el concepte de &#8220;vides&#8221;. Quantes oportunitats volem donar als jugadors? Qu\u00e8 volem que passi quan s&#8217;acaben les vides?<\/p>\n<hr \/>\n<p><img decoding=\"async\" class=\"alignnone\" src=\"http:\/\/projectes.xtec.cat\/programacioirobotica\/wp-content\/uploads\/usu604\/2017\/06\/scratch-icona_glosari.png\" alt=\"Icona glosari\" width=\"32\" \/> <strong>Com que som programadors i programadores parlem de&#8230;<\/strong><\/p>\n<div style=\"padding-left: 50px;\">\n<ul>\n<li><b>Variable:<\/b> s\u00f3n espais on podem guardar valors que s&#8217;aniran modificant (variant) al llarg del programa, \u00e9s a dir, que no tenen un valor fix.<\/li>\n<\/ul>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Pla de treball<\/p>\n<ul>\n<li>Control del final del joc<\/li>\n<li>El concepte variable<\/li>\n<li>Les vides en el joc<\/li>\n<\/ul>\n<p>No sempre encertem amb la raqueta<br \/>\nQuan juguem al pong i desplacem la raqueta, pot ser que no encertem a tocar la pilota. Hem d&#8217;aconseguir\u00a0controlar quan passa aix\u00f2 per saber que el joc s&#8217;ha&hellip;  <a href=\"https:\/\/agora.xtec.cat\/iesdeltebre\/curs-scratch\/modul-2-i-si-fem-un-joc-o-dos-scratch-3\/sessio-4-quan-sacaba-el-pong\/\" title=\"Read Sessi\u00f3 4.  Quan s&#8217;acaba el pong?\">Llegeix m\u00e9s\u00bb<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"parent":17995,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"page-templates\/side-menu.php","meta":{"_bbp_topic_count":0,"_bbp_reply_count":0,"_bbp_total_topic_count":0,"_bbp_total_reply_count":0,"_bbp_voice_count":0,"_bbp_anonymous_reply_count":0,"_bbp_topic_count_hidden":0,"_bbp_reply_count_hidden":0,"_bbp_forum_subforum_count":0,"footnotes":""},"class_list":["post-18004","page","type-page","status-publish","hentry"],"post_mailing_queue_ids":[],"_links":{"self":[{"href":"https:\/\/agora.xtec.cat\/iesdeltebre\/wp-json\/wp\/v2\/pages\/18004","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/agora.xtec.cat\/iesdeltebre\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/agora.xtec.cat\/iesdeltebre\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/agora.xtec.cat\/iesdeltebre\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/agora.xtec.cat\/iesdeltebre\/wp-json\/wp\/v2\/comments?post=18004"}],"version-history":[{"count":0,"href":"https:\/\/agora.xtec.cat\/iesdeltebre\/wp-json\/wp\/v2\/pages\/18004\/revisions"}],"up":[{"embeddable":true,"href":"https:\/\/agora.xtec.cat\/iesdeltebre\/wp-json\/wp\/v2\/pages\/17995"}],"wp:attachment":[{"href":"https:\/\/agora.xtec.cat\/iesdeltebre\/wp-json\/wp\/v2\/media?parent=18004"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}