{"id":8814,"date":"2017-02-10T14:51:24","date_gmt":"2017-02-10T13:51:24","guid":{"rendered":"http:\/\/agora.xtec.cat\/formacio\/scratch\/?page_id=8219"},"modified":"2017-02-10T14:51:24","modified_gmt":"2017-02-10T13:51:24","slug":"sessio-4","status":"publish","type":"page","link":"https:\/\/agora.xtec.cat\/demoinstitut\/modul-2\/sessio-4\/","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.<br \/>\n<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>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<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<\/li>\n<\/ul>\n<\/div>\n<p><img decoding=\"async\" class=\"alignnone\" src=\"http:\/\/projectes.xtec.cat\/programacioirobotica\/wp-content\/uploads\/usu604\/2017\/06\/scratch-pong19.png\" alt=\"Condicional\" \/><br \/>\n<img decoding=\"async\" class=\"alignnone\" src=\"http:\/\/projectes.xtec.cat\/programacioirobotica\/wp-content\/uploads\/usu604\/2017\/06\/scratch-pong20.png\" alt=\"Iteraci\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_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.<br \/>\nAquestes &#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> que es troba dins del bloc de <strong>Dades<\/strong>.<\/p>\n<p><img decoding=\"async\" class=\"alignnone\" src=\"http:\/\/projectes.xtec.cat\/programacioirobotica\/wp-content\/uploads\/usu604\/2017\/06\/scratch-pong21.png\" alt=\"Bloc dades\" \/><\/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:<\/li>\n<\/ul>\n<p><img decoding=\"async\" class=\"alignnone\" src=\"http:\/\/projectes.xtec.cat\/programacioirobotica\/wp-content\/uploads\/usu604\/2017\/06\/scratch-pong22.png\" alt=\"Creaci\u00f3 variable\" \/><\/p>\n<ul>\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.<\/li>\n<\/ul>\n<p><img decoding=\"async\" class=\"alignnone\" src=\"http:\/\/projectes.xtec.cat\/programacioirobotica\/wp-content\/uploads\/usu604\/2017\/06\/scratch-pong39.png\" alt=\"Creaci\u00f3 variable\" \/><\/p>\n<ul>\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.<br \/>\n<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 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:\u00a0<\/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 Control del final del joc El concepte variable Les vides en el joc No sempre encertem amb [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":8176,"menu_order":40,"comment_status":"closed","ping_status":"closed","template":"page-templates\/side-menu.php","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"class_list":["post-8814","page","type-page","status-publish","hentry"],"post_mailing_queue_ids":[],"_links":{"self":[{"href":"https:\/\/agora.xtec.cat\/demoinstitut\/wp-json\/wp\/v2\/pages\/8814","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/agora.xtec.cat\/demoinstitut\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/agora.xtec.cat\/demoinstitut\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/agora.xtec.cat\/demoinstitut\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/agora.xtec.cat\/demoinstitut\/wp-json\/wp\/v2\/comments?post=8814"}],"version-history":[{"count":0,"href":"https:\/\/agora.xtec.cat\/demoinstitut\/wp-json\/wp\/v2\/pages\/8814\/revisions"}],"up":[{"embeddable":true,"href":"https:\/\/agora.xtec.cat\/demoinstitut\/wp-json\/wp\/v2\/pages\/8176"}],"wp:attachment":[{"href":"https:\/\/agora.xtec.cat\/demoinstitut\/wp-json\/wp\/v2\/media?parent=8814"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}