coderdojomilano CONTACCINELLA TUTORIAL per SCRATCH 2.0 Percorso SCRATCH – BASE, Sessione 3 INTRODUZIONE Questo tutorial è focalizzato sulle lle variabili e gli operatori di Scratch. Il tutorial consiste nel realizzare un gioco in cui una coccinella insetto deve riordinare dei numeri su una lavagna. lavagna PASSI Sono previsti i seguenti passi: 1. 2. 3. 4. 5. 6. preparazione movimento della coccinella movimento dei numeri e duplicazione far contare il programma aggiunta del punteggio aggiunta dei livelli SCRATCH - Tutorial base.sessione3 – contaccinella - R02 Quest'opera è stata rilasciata con licenza Creative Commons Attribuzione Non commerciale - Condividi allo stesso modo 3.0 Unported PAGINA 1 coderdojomilano Dettaglio dei passi Passo 1: preparazione Aprire il progetto Scratch contaccinella.sb2 contaccinella in Scratch 2.0 Passo 2: movimento della coccinella Obiettivo finale: far muovere la coccinella con le frecce impostando la giusta velocità. Concetti: Uso delle variabili come costanti, uso delle variabili locali, inizializzazione di una variabile Obiettivo 2.1: aggiungere lo script per far muovere la coccinella con le quattro frecce e farle cambiare costume Soluzione 2.1: Selezionare la coccinella Aggiungere lo script SCEGLIERE FRECCIA SU SCEGLIERE DIREZIONE SU IMPOSTARE LA VELOCITA Duplicare3 volte il SE dello script e aggiungere i 3 duplicati dentro al PER SEMPRE In ogni blocco SE duplicato scegliere un tasto freccia diverso e la direzione corrispondete in modo da avere FRECCIA e DIREZIONE SU FRECCIA e DIREZIONE GIU’ FRECCIA e DIREZIONE DESTRA FRECCIA e DIREZIONE SINISTRA SCRATCH - Tutorial base.sessione3 – contaccinella - R02 Quest'opera è stata rilasciata con licenza Creative Commons Attribuzione Non commerciale - Condividi allo stesso modo 3.0 Unported PAGINA 2 coderdojomilano Obiettivo 2.2: impostare diverse velocità per la coccinella Soluzione 2.2: modificare il numero di passi in tutti e quattro i blocchi SE ed eseguire, provando più volte con valori differenti Obiettivo 2.3: Utilizzare una varabile per impostare la velocità della coccinella in un punto solo Soluzione 2.3: Creare la variabile VELOCITA COCCINELLA 1.SCEGLIERE VARIABILI E LISTE 3. DARLE UN NOME 4.SOLO PER QUESTO SPRITE 2.CREARE LA VARIABILE Aggiungere allo script della coccinella il blocco per assegnare un valore iniziale alla variabile 5. CONFERMARE Aggiungere la variabile in tutti i 4 blocchi SE al posto del numero di passi SCRATCH - Tutorial base.sessione3 – contaccinella - R02 Quest'opera è stata rilasciata con licenza Creative Commons Attribuzione Non commerciale - Condividi allo stesso modo 3.0 Unported PAGINA 3 coderdojomilano Passo 3: movimento dei numeri e duplicazione Obiettivo:: far muovere il primo numero per lo stage in modo automatico e farlo andare sulla prima riga delle lavagna se viene toccato dalla coccinella. Rendere facile la duplicazione del primo numero per crearne altri. variab locale, operatori aritmetici Concetti: inizializzazione e uso di una variabile Obiettivo 3.1: Far muovere il numero in modo automatico sullo stage Soluzione 3.1: Selezionare il numero Aggiungere lo script Aggiungere i blocchi per il movimento SCEGLIERE IL COSTUME 1 PER VISUALIZZARE IL NUMERO 1 IMPOSTARE LA VELOCITA’ IMPOSTARE LA ROTAZIONE Obiettivo 3.2: Spostare il numero sulla prima riga della lavagna quando viene toccato dalla coccinella e fermarlo Soluzione 3.2: Aggiungere allo script del numero i blocchi per l’interazione con la coccinella e per farlo fermare SCEGLIERE LA COCCINELLA IMPOSTARE LA POSIZIONE PER IL PRIMO NUMERO SELEZIONARE QUESTO SCRIPT SCRATCH - Tutorial base.sessione3 – contaccinella - R02 Quest'opera è stata rilasciata con licenza Creative Commons Attribuzione Non commerciale - Condividi allo stesso modo 3.0 Unported PAGINA 4 coderdojomilano Obiettivo 3.3: ridurre al minimo i valori dello script da modificare quando lo si duplica, e duplicarlo Soluzione 3.3: Selezionare il primo numero Creare la variabile ME valida solo per lo sprite corrente 1.SCEGLIERE VARIABILI E LISTE 3. DARLE UN NOME 4.SOLO PER QUESTO SPRITE 2.CREARE LA VARIABILE Valorizzare la variabile col numero dello sprite e sostituirla nei punti dello script che dipendono dal numero dello sprite 5. CONFERMARE VALORIZZARE ME AD 1 USARE ME PER IMPOSTARE IL COSTUME USARE ME CON GLI OPERATORI + (somma) E * (moltiplicazione) PER IMPOSTARE LA POSIZIONE X DEL NUMERO QUANDO VIENE TOCCATO Duplicare lo sprite del numero due volte. volte Negli script dei nuovi sprite cambiare il valore assegnato a ME, mettendo 2 e 3 SCRATCH - Tutorial base.sessione3 – contaccinella - R02 Quest'opera è stata rilasciata con licenza Creative Commons Attribuzione Non commerciale - Condividi allo stesso modo 3.0 Unported PAGINA 5 coderdojomilano Passo 4: far ar contare il programma Obiettivo: faree in modo che i numeri possano essere toccati solo in ordine e se si sbaglia tutti i numeri già bloccati devono ricominciare a muoversi. Concetti: uso di una variabile per gestire lo stato del programma, programma operatori di relazione Obiettivo 4.1: Fare in modo che ill programma conti quanti numeri ha toccato Soluzione 4.1: Creare la variabile CONTATORE che viene usata per contare 1.SCEGLIERE VARIABILI E LISTE 3. DARLE UN NOME 4.PER TUTTI GLI SPRITE 2.CREARE LA VARIABILE 5. CONFERMARE Selezionare lo stage Aggiungere lo script che parte a contare da 0 Selezionare il primo numero Nel suo script aggiungere il blocco che conta aumentando CONTATORE di 1 ogni volta che il numero viene toccato SCEGLIERE LA VARIABILE CONTATORE E AUMENTARLA DI 1 SCRATCH - Tutorial base.sessione3 – contaccinella - R02 Quest'opera è stata rilasciata con licenza Creative Commons Attribuzione Non commerciale - Condividi allo stesso modo 3.0 Unported PAGINA 6 coderdojomilano Obiettivo 4.2: Fare in modo che i numeri possano essere catturati solo in ordine Soluzione 4.2: Nello script del primo numero aggiungere un blocco SEALTRIMENTI che fa catturare il numero e aumenta il CONTATORE solo se il numero (ME) è quello successivo a CONTATORE (ovvero è il prossimo numero da toccare) SI USA L’OPERATORE DI UGUAGLIANZA PER FARE IL CONFRONTO SI USA L’OPERATORE + (somma) PER CONFRONTARE ME CON IL NUMERO SUCCESSIVO ALL’ULTIMO CONTATO (OVVERO CONTATORE + 1) Obiettivo 4.3: Fare in modo che se si tocca il numero sbagliato i numeri già catturati ricomincino a muoversi Soluzione 4.3: Aggiungere il blocco SE che fa muovere il numero solo se non è ancora stato toccato prima (ovvero se non è ancora stato contato dal CONTATORE) SI USA L’OPERATORE < (minore di) PER IL CONFRONTO CONFRONTARE SE IL CONTATORE E’ MINORE DEL NUMERO DELLO SPRITE (VUOL DIRE CHE NON E’ ANCORA ARRIVATO A CONTARE FINO A QUESTO NUMERO) SCRATCH - Tutorial base.sessione3 – contaccinella - R02 Quest'opera è stata rilasciata con licenza Creative Commons Attribuzione Non commerciale - Condividi allo stesso modo 3.0 Unported PAGINA 7 coderdojomilano Aggiungere in ALTRIMENTI un blocco che mette a 0 CONTATORE se si tocca un numero che non è quello giuto. SELEZIONARE CONTATORE E IMPOSTARE IL VALORE A 0 Togliere il blocco che arresta lo script Così se si sbaglia numero tutti quelli già catturati ricominciano a muoversi. Cancellare tutti gli sprite dei numeri tranne il primo e poi duplicarlo due volte. Negli egli script dei nuovi sprite cambiare il valore assegnato a ME, mettendo 2 e 3 Passo 5: aggiunta del punteggio Obiettivo: aggiungere un punteggio che cresce ogni volta che si cattura il numero giusto e diminuisce ogni volta che si tocca quello sbagliato. Concetti: uso di una variabile Obiettivo 5.1: Aggiungere punti quando si cattura il numero giusto Soluzione 5.1: Creare la variabile PUNTI 1.SCEGLIERE VARIABILI E LISTE 3. DARLE UN NOME 4.PER TUTTI GLI SPRITE 2.CREARE LA VARIABILE Selezionare lo stage 5. CONFERMARE Aggiungere il blocco che mette PUNTI a 0 SELEZIONARE PUNTI E IMPOSTARE A 0 IL VALORE SCRATCH - Tutorial base.sessione3 – contaccinella - R02 Quest'opera è stata rilasciata con licenza Creative Commons Attribuzione Non commerciale - Condividi allo stesso modo 3.0 Unported PAGINA 8 coderdojomilano Selezionare il primo numero Aggiungere il blocco che assegna 10 punti quando il numero catturato è quello giusto (dentro al SE)e il blocco che ne toglie 5 se è quello sbagliato (dentro ad ALTRIMENTI) SELEZIONARE PUNTI E IMPOSTARE A 10 IL VALORE SELEZIONARE PUNTI E IMPOSTARE A -5 IL VALORE Obiettivo 5.2: Quando si tocca il numero sbagliato bisogna togliere i punti guadagnati fino a quel momento Soluzione 5.2: Aggiungere un blocco che toglie 10 punti tante volte quant’è CONTATORE, dentro ad ALTRIMENTI SI USA L’OPERATORE * (moltiplicazione) Obiettivo 5.3: Fare in modo che i punti vengano tolti una volta sola appena si tocca il numero sbagliato Soluzione 5.3: Aggiungere un blocco che attende fio a quando lo sprite non sta più toccando la coccinella SI USA L’OPERATORE NON Cancellare tutti gli sprite dei numeri tranne il primo e poi duplicarlo quattro volte. Negli script dei nuovi sprite cambiare il valore assegnato a ME, mettendo 2, 3, 4 e 5 SCRATCH - Tutorial base.sessione3 – contaccinella - R02 Quest'opera è stata rilasciata con licenza Creative Commons Attribuzione Non commerciale - Condividi allo stesso modo 3.0 Unported PAGINA 9 coderdojomilano Passo 6: aggiunta dei livelli Obiettivo: aggiungere dei livelli di difficoltà che crescono ogni volta che si catturano tutti i numeri. numeri Concetti: uso di una variabile Obiettivo 6.1: Aggiungere al gioco i livelli che cambiano ogni volta che si catturano tutti i numeri Soluzione 6.1: Aggiungere la variabile LIVELLO (per tutti gli sprite) Selezionare lo stage Aggiungere il blocco che all’inizio mette LIVELLO a 1 SELEZIONARE LIVELLO E IMPOSTARE A 1 IL VALORE Aggiungere una condizione che fa salire di uno LIVELLO ogni volta che si catturano tutti i numeri SI USA l’OPERATORE DI UGUAGLIANZA PER CONTROLLARE IL VALORE DEL CONTATORE IMPOSTARE IL VALORE DI CONFRONTO COL TOTALE DI SPRITE NUMERICI USATI SELEZIONARE LIVELLO E AUMENTARLO DI 1 SELEZIONARE CONTATORE E IMPOSTARLO A 0 SCRATCH - Tutorial base.sessione3 – contaccinella - R02 Quest'opera è stata rilasciata con licenza Creative Commons Attribuzione Non commerciale - Condividi allo stesso modo 3.0 Unported PAGINA 10 coderdojomilano Obiettivo 6.2: Fermare il gioco dopo 5 livelli Soluzione 6.2: Aggiungere una condizione che ferma tutto se il gioco supera il 5° livello USARE L’OPERATORE > (maggiore di) PER CONTROLLARE SE IL LIVELLO HA SUPERATO IL 5° SELEZIONARE TUTTO Obiettivo 6.3: Aumentare la velocità dei numeri ad ogni livello Soluzione 6.3: Aggiungere una variabile PASSI per regolare la velocità dei numeri, per tutti gli sprite USARE L’OPERATORE > (maggiore di) PER CONTROLLARE SE IL LIVELLO HA SUPERATO IL 5° SELEZIONARE TUTTO Aggiungere una variabile GRADI per regolare la rotazione dei numeri, per tutti gli sprite Selezionare lo stage Aggiungere i blocchi che danno un valore iniziale a PASSI e GRADI SELEZIONARE GRADI E IMPOSTARE A 1 IL VALORE SELEZIONARE PASSI E IMPOSTARE A 2 IL VALORE SCRATCH - Tutorial base.sessione3 – contaccinella - R02 Quest'opera è stata rilasciata con licenza Creative Commons Attribuzione Non commerciale - Condividi allo stesso modo 3.0 Unported PAGINA 11 coderdojomilano Aggiungere i blocchi che aumentano PASSI e GRADI ogni volta che aumenta il livello SELEZIONARE PASSI E IMPOSTARE A 1 IL VALORE SELEZIONARE GRADI E IMPOSTARE A 1 IL VALORE Selezionare il primo numero Sostituire i valori dei passi e dei gradi con le variabili PASSI e GRADI Cancellare tutti gli sprite dei numeri tranne il primo e poi duplicarlo quattro volte. Negli script dei nuovi sprite cambiare il valore assegnato a ME, mettendo 2, 3, 4 e 5 SCRATCH - Tutorial base.sessione3 – contaccinella - R02 Quest'opera è stata rilasciata con licenza Creative Commons Attribuzione Non commerciale - Condividi allo stesso modo 3.0 Unported PAGINA 12