IL CASTELLO DEI MILLE SPECCHI

Talliente Martina

Competenze richieste:

Si consiglia la visione dell’attività “Introduzione alle funzioni

Conoscenza di istruzioni condizionali. Sarebbe apprezzato aver svolto l’attività sulle istruzioni condizionali su https://programmailfuturo.it/come/primaria/lezioni-tradizionali/istruzioni-condizionali/

Materiale

Il castello dei mille specchi di Giochi Uniti

Età

A partire da 9 anni

Numero di giocatori

Squadre da 2 a 4 giocatori

Competenze acquisite

Obiettivi di apprendimento al termine della classe terza della scuola primaria

Ambito algoritmi
O-P3-A-1. Riconoscere gli elementi algoritmici in operazioni abituali della vita quotidiana (p.es.: lavarsi i denti, vestirsi, uscire dall’aula…)

Ambito algoritmi
O-P3-A-2. Comprendere che problemi possono essere risolti mediante la loro scomposizione in parti più piccole


Obiettivi di apprendimento al termine della classe quinta della scuola primaria

Ambito algoritmi
O-P5-A-1. Utilizzare il ragionamento logico per spiegare il funzionamento di alcuni semplici algoritmi

Ambito algoritmi
O-P5-A-2. Risolvere problemi mediante la loro scomposizione in parti più piccole

Ambito algoritmi
O-P5-P-3. Riconoscere che una sequenza di istruzioni può essere considerata come un’unica azione oggetto di ripetizione o selezione


Anche un gioco da tavola può essere tradotto in un’operazione ricorsiva.

PREPARAZIONE:

Il gioco consiste nell’individuare determinate immagini all’interno del castello utilizzando al massimo 3 spostamenti degli specchi. Dividi la classe in gruppi, leggi le istruzioni del gioco a voce alta e, una volta chiare a tutti, inizia a farli giocare.

QUESTO É INFORMATICA!


La riflessione tra gli specchi può essere vista come un tipo di ricorsione: l’immagine viene riflessa sullo specchio vicino, il riflesso dell’immagine su questo specchio viene riflesso su un altro specchio, il riflesso del riflesso viene a sua volta riflesso su un altro specchio e così via, potenzialmente all’infinito. In informatica però la ricorsione deve essere ben fondata, vale a dire che deve terminare dopo un numero finito di passaggi riflessivi.

Domanda di riflessione per i bambini: nel gioco la riflessione tra gli specchi risulta essere infinita oppure termina?
Nel gioco la ricorsione non è infinita: il numero di chiamate ricorsive, ovvero il numero di riflessi che vengono riflessi, dipende dal numero di specchi utilizzati che sono al massimo 4.
Di seguito un possibile algoritmo per questo gioco:

INIZIO_DEL_GIOCO {
  1. TROVA_IMMAGINE (0)
}

TROVA_IMMAGINE (specchio) {
  1. Se vedi l'immagine hai finito
  2. Altrimenti TROVA_IMMAGINE (specchio+1)
}

Primo caso

I nostri occhi posizionati nell’unica “finestra aperta”, che si trova al centro, vedono il riflesso dell’immagine attraverso uno specchio.

Eseguiamo l’algoritmo

Iniziamo il gioco, dobbiamo eseguire la funzione TROVA_IMMAGINE (0). 0 è il parametro passato alla funzione, significa che inizio a cercare l’immagine con zero specchi. Eseguiamo quindi la funzione.

Immaginiamo che non ci sia lo specchio alzato della foto. Guardando dalla finestra aperta (quella centrale) vediamo l’immagine della chiave rappresentata nella figura?

No, ci serve proprio lo specchio quindi eseguiamo il passo 2 facendo la prima chiamata ricorsiva: TROVA_IMMAGINE (1) ovvero abbiamo uno specchio.

TROVA_IMMAGINE (0) {
  1. Se vedi l'immagine hai finito
  2. Altrimenti TROVA_IMMAGINE (0+1)
}

Prima chiamata ricorsiva.
Abbiamo uno specchio, lo posizioniamo come nella foto. Eseguiamo la prima istruzione: vediamo l’immagine? Si, come si vede dalla foto con uno specchio riusciamo
a visualizzare l’immagine della chiave. Abbiamo finito facendo una chiamata ricorsiva.

TROVA_IMMAGINE (1) { 
  1. Se vedi l'immagine hai finito
  2. Altrimenti TROVA_IMMAGINE (1+1)
}

Secondo caso

I nostri occhi posizionati nell’unica “finestra aperta”, che si trova al centro, vedono il riflesso dell’immagine attraverso due specchi. Infatti, l’immagine della terza carta a destra si riflette sullo specchio davanti (il secondo a destra) che riflette il riflesso dell’immagine allo specchio vicino che riflette l’immagine ai nostri occhi.

Eseguiamo l’algoritmo

Iniziamo il gioco, dobbiamo eseguire la funzione TROVA_IMMAGINE (0). 0 è il parametro passato alla funzione, significa che inizio a cercare l’immagine con zero specchi. Eseguiamo quindi la funzione.

Immaginiamo che non ci sia lo specchio alzato della foto. Guardando dalla finestra aperta (quella centrale) vediamo l’immagine della chiave rappresentata nella figura?

No, ci serve proprio lo specchio quindi eseguiamo il passo 2 facendo la prima chiamata ricorsiva: TROVA_IMMAGINE (1) ovvero abbiamo uno specchio.

TROVA_IMMAGINE (0) {
  1. Se vedi l'immagine hai finito
  2. Altrimenti TROVA_IMMAGINE (0+1)
}

Prima chiamata ricorsiva.
Abbiamo uno specchio, lo posizioniamo come nella foto. Eseguiamo la prima istruzione: vediamo l’immagine? Si, come si vede dalla foto con uno specchio riusciamo
a visualizzare l’immagine della chiave. Abbiamo finito facendo una chiamata ricorsiva.

TROVA_IMMAGINE (1) { 
  1. Se vedi l'immagine hai finito
  2. Altrimenti TROVA_IMMAGINE (1+1)
}

Seconda chiamata ricorsiva.
Abbiamo due specchi, il secondo lo posizioniamo come quello nella foto. Eseguiamo la prima istruzione: vediamo l’immagine dell’aglio? Si! Quindi abbiamo finito facendo due chiamate ricorsive.

TROVA_IMMAGINE (2) {
  1. Se vedi l'immagine hai finito
  2. Altrimenti TROVA_IMMAGINE (2+1)
}

Terzo caso

In questo esempio la “finestra aperta” è la prima a sinistra. Seguendo la stessa logica, il riflesso dell’immagine passa attraverso tre specchi.

Eseguiamo l’algoritmo

Iniziamo il gioco, dobbiamo eseguire la funzione TROVA_IMMAGINE (0). 0 è il parametro passato alla funzione, significa che inizio a cercare l’immagine con zero specchi. Eseguiamo quindi la funzione.

Immaginiamo che non ci sia lo specchio alzato della foto. Guardando dalla finestra aperta (quella centrale) vediamo l’immagine della chiave rappresentata nella figura?

No, ci serve proprio lo specchio quindi eseguiamo il passo 2 facendo la prima chiamata ricorsiva: TROVA_IMMAGINE (1) ovvero abbiamo uno specchio.

TROVA_IMMAGINE (0) {
  1. Se vedi l'immagine hai finito
  2. Altrimenti TROVA_IMMAGINE (0+1)
}

Prima chiamata ricorsiva.
Abbiamo uno specchio, lo posizioniamo come nella foto. Eseguiamo la prima istruzione: vediamo l’immagine? Si, come si vede dalla foto con uno specchio riusciamo
a visualizzare l’immagine della chiave. Abbiamo finito facendo una chiamata ricorsiva.

TROVA_IMMAGINE (1) { 
  1. Se vedi l'immagine hai finito
  2. Altrimenti TROVA_IMMAGINE (1+1)
}

Seconda chiamata ricorsiva.
Abbiamo due specchi, il secondo lo posizioniamo come quello nella foto. Eseguiamo la prima istruzione: vediamo l’immagine dell’aglio? Si! Quindi abbiamo finito facendo due chiamate ricorsive.

TROVA_IMMAGINE (2) {
  1. Se vedi l'immagine hai finito
  2. Altrimenti TROVA_IMMAGINE (2+1)
}

Terza chiamata ricorsiva.
Abbiamo tre specchi, il terzo lo posizioniamo come nella foto. Eseguiamo la prima istruzione: vediamo l’immagine? Si! Quindi abbiamo finito facendo tre chiamate ricorsive.

TROVA_IMMAGINE (3) {
  1. Se vedi l'immagine hai finito
  2. Altrimenti TROVA_IMMAGINE (3+1)
}

Quarto caso

Ed infine, in questo caso, l’immagine viene riflessa quattro volte prima di essere visibile ai nostri occhi posizionati nella “finestra aperta” a sinistra.

Prova a simulare il ragionamento fatto fino ad ora con la classe per quest’ultimo caso.