akkaz / scuola

Il tuo gioco passa il collaudo?

Oggi il compagno prova il tuo gioco. Tu trovi un problema, lo sistemi e gli fai provare la versione migliorata.

1G · 23 ottobre · laboratorio Scratch

Comincia dalla copia

Spunte e appunti restano in questo browser. Non sono un voto e non vengono inviati al docente. Su un PC condiviso scarica gli appunti e poi cancellali.

1. Apri il progetto e crea una copia

Usa il gioco che hai costruito ieri. Il file originale rimane conservato: oggi lavori su una nuova versione.

  1. Apri l’editor Scratch oppure l’app Scratch già installata. Nel menu con il globo scegli Italiano, se serve.
  2. Se c’è già un progetto importante aperto, salvalo prima. Poi scegli File → Carica dal tuo computer e apri il tuo file .sb3.
  3. Scegli subito File → Salva sul tuo computer. Dai alla copia il nome collaudo-mio-gioco.sb3. Se finisce in Download, controlla lì.
  4. Premi la bandiera verde e prova i comandi. Scrivi qui sotto una frase che spiega lo scopo del gioco.
Non trovo il file o non ho ancora un gioco funzionante

Controlla Download, Documenti e la cartella usata ieri. Cerca un file che termina con .sb3, non una schermata del gioco. Se non lo trovi, chiedi al docente prima di ricominciare.

Se hai il progetto ma è incompleto, usa gli aiuti del laboratorio precedente oppure gli aiuti di questa pagina. Il primo obiettivo è un personaggio che parte, si muove e raggiunge un finale.

2. Prova una partita intera

Un collaudo è una serie di prove. Non basta guardare il codice: devi giocare e osservare quello che accade. Per ogni prova scegli un risultato.

Una prova che non funziona è utile: hai trovato il prossimo pezzo su cui lavorare. Segna quello che vedi davvero.

3. Lascia il mouse al collaudatore

In coppia, uno è l’autore e uno il collaudatore. Il collaudatore legge la frase con i comandi e gioca. L’autore osserva senza guidare ogni mossa. Poi scambiate i ruoli.

Il compito del collaudatore è descrivere come rifare un problema. «Non va» non basta; «Dopo aver perso, premo la bandiera e rimango sullo sfondo Hai perso» permette di cercare l’errore.

Non troviamo errori: che cosa possiamo provare?

Fate due partite consecutive. Tenete premuta una freccia al bordo. Restate a contatto con un oggetto. Provate sia la vittoria sia la sconfitta, se esistono entrambe.

Se tutto continua a funzionare, scrivete «Nessun problema nelle prove svolte» e scegliete un piccolo miglioramento dei comandi o della chiarezza. Non serve inventare un errore.

4. Cambia una cosa e rifai la stessa prova

Individua lo sprite che controlla quel comportamento. Cambia pochi blocchi, premi la bandiera e ripeti esattamente le azioni scritte dal collaudatore. Se modifichi tutto insieme, è difficile capire che cosa ha risolto il problema.

Mi oriento nei blocchi: evento, ciclo e condizione

Seleziona prima lo sprite sotto l’area di gioco. Il blocco giallo in cima è l’evento che avvia lo script. Il blocco arancione per sempre ripete i controlli. Il blocco se… allora esegue il contenuto solo quando la condizione è vera.

I blocchi qui sono figure da ricostruire in Scratch. La parola «fine» nel testo alternativo indica la chiusura di un blocco a C: non cercare un blocco chiamato fine.

Il personaggio non torna alla partenza

Sullo sprite del giocatore, cerca lo script della bandiera. Metti la posizione iniziale prima del ciclo di movimento. Queste coordinate sono un esempio: scegli un punto libero dagli ostacoli nel tuo gioco.

quando si clicca su @greenFlag
vai a x: (-180) y: (-100)
mostra
per sempre
  se <tasto [freccia destra v] premuto?> allora
    cambia x di (3)
  fine
fine

Prova: muoviti, premi la bandiera e controlla che il giocatore torni al punto iniziale. Per sinistra usa «cambia x di −3»; per alto e basso cambia y.

I punti non tornano a zero

Vai in Variabili. Se la variabile non esiste, creala con il nome Punti, per tutti gli sprite. Se nel tuo gioco si chiama Monete, usa quel nome e non creare un secondo contatore.

In uno script della bandiera, prima dei controlli, inserisci:

quando si clicca su @greenFlag
porta [Punti v] a (0)

«Porta a 0» assegna il valore iniziale. «Cambia di 1» aggiunge un punto al valore attuale. Non mettere «porta a 0» dentro per sempre, altrimenti cancelleresti continuamente i punti.

Prova: guadagna due punti, premi di nuovo la bandiera e controlla il contatore.

Una moneta dà tanti punti tutti insieme

Il ciclo controlla il contatto molte volte al secondo. Dopo aver dato il punto, sposta subito la moneta lontano dal giocatore. Questo esempio va sullo sprite Moneta; nel menu del sensore scegli il vero nome del tuo giocatore.

quando si clicca su @greenFlag
vai a x: (100) y: (100)
per sempre
  se <sta toccando [Giocatore v]?> allora
    cambia [Punti v] di (1)
    vai a x: (100) y: (100)
    attendi fino a quando <non <sta toccando [Giocatore v]?>>
  fine
fine

Il punto (100, 100) è un esempio: scegli una posizione valida per il tuo gioco. «Attendi fino a quando non sta toccando…» impedisce di assegnare altri punti finché i due sprite restano a contatto. Sostituisci il vecchio controllo di raccolta: non tenerne due attivi.

Prova: raccogli una moneta; i punti devono aumentare di uno solo.

La partita finisce, ma il gioco continua

Crea prima uno sfondo chiamato Hai vinto con un messaggio leggibile. Sul giocatore, quando riconosci il traguardo, fai vedere il finale e ferma gli script:

se <sta toccando [Traguardo v]?> allora
  passa allo sfondo [Hai vinto v]
  ferma [tutto v]
fine

Questo controllo va dentro il ciclo già esistente. Nel menu scegli il vero sprite del traguardo. All’avvio ripristina anche lo sfondo normale, nel tuo gioco per esempio «Campo»:

quando si clicca su @greenFlag
passa allo sfondo [Campo v]

Prova: raggiungi il traguardo, controlla il finale e premi la bandiera. Il gioco deve essere di nuovo giocabile.

5. Una novità, solo se la base funziona

Puoi fermarti alla correzione fatta bene. Se il gioco parte, risponde, finisce e ricomincia, scegli una sola di queste aggiunte. Scarica prima un’altra copia funzionante.

Aggiunta A: tre vite al posto della sconfitta immediata

Adatta questa aggiunta a un gioco con ostacoli. Crea la variabile Vite per tutti gli sprite. Sostituisci il vecchio controllo che faceva perdere al primo contatto; se lo lasci, continuerai a perdere subito.

Questo è lo schema sul Giocatore. Il movimento può restare nel suo script. Sostituisci «Ostacolo» con il nome reale e scegli coordinate iniziali sicure.

quando si clicca su @greenFlag
porta [Vite v] a (3)
vai a x: (-180) y: (-100)
per sempre
  se <sta toccando [Ostacolo v]?> allora
    cambia [Vite v] di (-1)
    se <(Vite) = (0)> allora
      passa allo sfondo [Hai perso v]
      ferma [tutto v]
    fine
    vai a x: (-180) y: (-100)
    attendi fino a quando <non <sta toccando [Ostacolo v]?>>
  fine
fine

Crea lo sfondo «Hai perso» e ricordati di ripristinare lo sfondo di gioco alla bandiera.

Tre prove: primo urto → 2 vite; terzo urto → sconfitta; nuova bandiera → 3 vite. Un unico contatto non deve consumare tutte le vite.

Aggiunta B: trenta secondi per vincere

Adatta questa aggiunta a un gioco con un traguardo. Crea la variabile Tempo per tutti gli sprite e lo sfondo Tempo scaduto. Metti questo script sullo Stage (clicca la miniatura dello sfondo).

quando si clicca su @greenFlag
porta [Tempo v] a (30)
ripeti (30) volte
  attendi (1) secondi
  cambia [Tempo v] di (-1)
fine
passa allo sfondo [Tempo scaduto v]
ferma [tutto v]

La vittoria del tuo gioco deve usare «ferma tutto», così ferma anche il conto alla rovescia. Alla bandiera ripristina lo sfondo normale. Se hai già un timer, modifica quello invece di aggiungerne un secondo.

Tre prove: aspetta senza vincere → scade il tempo; vinci prima → il timer si ferma; nuova bandiera → riparti da 30.

Hai già completato anche queste aggiunte? Prova la sfida dei due livelli.

Un controllo prima di chiudere

Hai messo «porta Punti a 0» dentro «per sempre». Raccogli una moneta, ma il punteggio torna subito a zero. Dove sposti quel blocco?

Sfida extra · Il tuo gioco ha un livello 2

Hai già finito il collaudo e il tuo gioco funziona? Trasformalo in un gioco con due livelli. Alla fine del primo non compare subito la vittoria: il giocatore entra in una nuova sfida. La vittoria arriva solo dopo il secondo livello.

Salva prima una copia funzionante, poi lavora in mio-gioco-due-livelli.sb3. È una sfida facoltativa: gli aiuti mostrano pezzi da adattare al tuo gioco, non un progetto da copiare intero.

Prima scegli la regola

  • Gioco con traguardo: raggiungerlo nel livello 1 apre il livello 2; raggiungerlo di nuovo fa vincere.
  • Gioco con monete: raccogliere 5 monete apre il livello 2. Scegli se ripartire da 0 e raccoglierne altre 5, oppure conservare i punti e arrivare a 10. Scrivi quale regola hai scelto.

Nel secondo livello cambia qualcosa che influenza il gioco: un percorso diverso, ostacoli più rapidi oppure tempi più brevi per muoversi. Il solo cambio di colore non basta. Deve comunque essere possibile vincere.

Le quattro cose da costruire

  1. Una variabile Livello visibile, che parte da 1.
  2. Il passaggio al livello 2 una sola volta, senza fermare il gioco.
  3. Una nuova posizione di partenza sicura e una difficoltà diversa.
  4. La vittoria finale e una nuova partita che riparte davvero dal livello 1.
Aiuto 1 · Come ricordo il livello?

In Variabili → Crea una variabile, crea Livello per tutti gli sprite. Inserisci questa istruzione nello script di avvio che hai già:

quando si clicca su @greenFlag
porta [Livello v] a (1)

Fallo una volta all’avvio, non dentro per sempre. Alla bandiera ripristina anche sfondo, posizioni, punti, vite e velocità iniziali che il tuo gioco usa.

Aiuto 2 · Il traguardo cambia significato

Questo frammento è per un gioco con uno sprite chiamato Traguardo. Inseriscilo nel ciclo che controlla l’arrivo, al posto del vecchio blocco che faceva vincere subito. Usa il nome reale del tuo traguardo.

se <sta toccando [Traguardo v]?> allora
  se <(Livello) = (1)> allora
    porta [Livello v] a (2)
    invia a tutti [livello 2 v] e attendi
  altrimenti
    passa allo sfondo [Hai vinto v]
    ferma [tutto v]
  fine
fine

Nel menu del blocco «invia a tutti» scegli Nuovo messaggio e chiamalo livello 2. È un segnale interno al progetto: permette a più sprite di reagire allo stesso evento.

Attenzione: il messaggio deve anche spostare il giocatore lontano dal traguardo. Altrimenti, al controllo successivo, il giocatore sarebbe ancora a contatto e vincerebbe subito anche il livello 2.

Se il tuo gioco usa i punti, sostituisci la condizione esterna di contatto con la soglia adatta. Nel secondo livello cambia soglia oppure azzera i punti al passaggio, secondo la regola scelta: non lasciare vera per sempre la condizione dei primi 5 punti.

Aiuto 3 · Come comincia il nuovo livello?

Sul giocatore aggiungi uno script con il messaggio appena creato. Per esempio:

quando ricevo [livello 2 v]
vai a x: (-180) y: (-100)

Le coordinate sono un esempio: scegli un punto libero da ostacoli e lontano dal traguardo. Crea uno sfondo chiamato Livello 2 e, sullo Stage, aggiungi:

quando ricevo [livello 2 v]
passa allo sfondo [Livello 2 v]

Il vecchio script del movimento continua a funzionare: non copiarlo una seconda volta. Anche gli ostacoli possono ricevere il messaggio e cambiare posizione.

Negli script avviati da questo messaggio metti solo la preparazione del livello, che deve finire. Non mettere un per sempre: «invia a tutti e attendi» aspetta che tutti questi script terminino.

Aiuto 4 · Gli ostacoli diventano più veloci

Se nel tuo gioco un ostacolo scende con «cambia y di −3», puoi creare la variabile Velocità per tutti gli sprite. All’avvio impostala a 3. Nel movimento dell’ostacolo, sostituisci il numero fisso con:

cambia y di ((0) - (Velocità))

Quando comincia il livello 2, imposta Velocità a 5 in uno degli script di preparazione:

quando ricevo [livello 2 v]
porta [Velocità v] a (5)

Così l’ostacolo scende di 5 invece che di 3. Alla bandiera deve tornare a 3. Se il tuo gioco non ha ostacoli in caduta, cambia il percorso o i tempi della tua meccanica: non aggiungere un movimento che non c’entra.

Ancora più avanti? Aggiungi una scelta

All’inizio fai scegliere Facile o Difficile. La scelta deve cambiare una variabile concreta: per esempio Vite, Tempo o Velocità. Mostra sullo schermo quale modalità è attiva e collauda entrambe. Prima completa bene i due livelli.

Un indizio per la scelta della difficoltà

Puoi usare due sprite pulsante che reagiscono a «quando si clicca questo sprite». Impostano una variabile Difficoltà e inviano un messaggio inizia partita. I comandi del giocatore devono partire solo dopo la scelta. Non creare due copie dei blocchi di movimento: sposta l’avvio esistente sotto il messaggio appropriato.

Il collaudo da superare

  1. Primo arrivo: compare Livello 2, cambia la sfida e non compare ancora Hai vinto.
  2. Rimani al traguardo: il passaggio ti porta lontano e non scatta una seconda vittoria istantanea.
  3. Secondo arrivo: compare la vittoria e il gioco si ferma.
  4. Nuova bandiera: Livello torna a 1, ripartono sfondo e difficoltà iniziali, anche dopo una sconfitta nel livello 2.

Per un gioco a punti, prova le due soglie invece dei due arrivi. Se hai aggiunto un timer, dichiara se vale per l’intera partita o riparte a ogni livello e verifica che non ci siano due conti alla rovescia attivi.

Mostra al docente: «Questo blocco riconosce il primo livello, questo messaggio prepara il secondo, questa istruzione ripristina la partita».

Questa sfida si prova in Scratch con un compagno: la pagina non controlla automaticamente il tuo progetto. Puoi fermarti a un passaggio funzionante e continuare la prossima volta.

6. Salva, riapri e mostra la differenza

  1. In Scratch scegli File → Salva sul tuo computer. Conserva la versione finale, per esempio collaudo-mio-gioco-finale.sb3.
  2. Controlla il nome e la cartella del file appena scaricato. Con File → Carica dal tuo computer riapri proprio quel file.
  3. Prova una partita e una ripartenza: ci sono tutte le tue modifiche?
  4. Mostra al docente o al compagno: «Prima succedeva… Ho cambiato questi blocchi… Ora succede…».

Il salvataggio dei piccoli appunti di questa pagina non salva il progetto Scratch. Questa pagina non carica file e non invia consegne: per il lavoro di oggi segui l’indicazione del docente.

Negli appunti descrivi soltanto il gioco e le prove. Non inserire nomi, email o altre informazioni personali. Il download contiene quello che hai scritto.