(Scope, Cicli, Array, Numeri Pseudorandomici)
Questo repository raccoglie gli esercizi realizzati durante il Modulo 2 – Lezione 4 del Master in Game Development (Epicode). Il progetto è composto da semplici script C# eseguiti in Unity per consolidare i concetti fondamentali di programmazione strutturata e logica applicata al contesto 3D.
Ogni esercizio introduce un concetto chiave:
- Scope e Lifespan delle variabili,
- Cicli di iterazione (
while,do…while,for), - Array e gestione di collezioni,
- Generazione di numeri pseudorandomici,
- e l’applicazione di questi principi in piccoli script interattivi.
- Comprensione dello scope: differenza tra variabili locali, di classe e variabili esposte in Inspector.
- Utilizzo di
[SerializeField]per esporre variabili private in modo sicuro. - Gestione del ciclo di vita di uno script Unity (
Start(),Update()). - Creazione e gestione di array per contenere e manipolare più valori.
- Implementazione di loop per iterare dati e controllare flussi logici.
while: esecuzione controllata da una condizione logica.do…while: garantisce almeno un’esecuzione del blocco.for: utile per iterazioni con contatori e limiti precisi.breakecontinue: gestione avanzata del flusso di un ciclo.
Esercizi: countdown, stampa di numeri pari, FizzBuzz, somma e prodotto di array, iterazioni condizionali.
- Dichiarazione e inizializzazione di array (
int[] numeri = new int[5];). - Accesso agli elementi tramite indice.
- Iterazione tramite
fore proprietà.Length. - Evitare errori comuni come
IndexOutOfRangeException. - Inizializzazioni rapide e assegnazioni dinamiche.
Esercizi: somma e prodotto di elementi, stampa di intervalli numerici, manipolazione di dati sequenziali.
- Introduzione alla classe
Randomin Unity. - Uso di
Random.Range(min, max)per generare valori casuali controllati. - Differenza tra interi (max escluso) e float (max incluso).
- Applicazioni pratiche: generazione di numeri vicini a un target (
numberToFind ± offset).
Esercizio: creazione di un array casuale e ricerca di un numero specifico (
Found / Not Found).
- Uso di
Debug.Log()per visualizzare risultati, tracciare iterazioni e monitorare lo stato interno delle variabili. - Formattazione di stringhe interpolata (
$"Value: {x}").
-
Creazione di mini-algoritmi logici dentro Unity.
-
Applicazione di concetti base di programmazione procedurale e pensiero computazionale:
- gestione di contatori,
- accumulazione di somme e prodotti,
- uso di condizioni per casi multipli (FizzBuzz),
- controllo di range e limiti negli array.
- Clona o scarica il repository.
- Apri Unity Hub e crea un progetto 3D vuoto con la stessa versione.
- Chiudi l’editor e sostituisci le cartelle
Assets/,Packages/,ProjectSettings/con quelle del repository. - Riapri il progetto.
- In scena, crea un Empty Object e aggiungi gli script degli esercizi come Component.
- Premi Play per visualizzare i risultati in Console.
- Imposta i valori in Inspector (ad esempio:
max,startNumber,arraySize,numberOffsetecc.). - Premi Play per osservare in Console l’esecuzione dei cicli, i risultati dei calcoli e i messaggi di debug.
- Esperimenta modificando i parametri per comprendere meglio i concetti di iterazione, condizione e casualità controllata.
- Errore CS0101 / CS0111: classe duplicata — rinomina file o classe.
Debugambiguo: rimuoviusing System.Diagnostics;oppure usaUnityEngine.Debug.Log(...).- Variabili non visibili in Inspector: usa
publico[SerializeField] private, non entrambi. - Loop infinito: assicurati che la condizione del ciclo possa diventare
false. - IndexOutOfRange: controlla che il ciclo non usi
<= array.Length.
Questa lezione ha consolidato i fondamenti della logica in C# applicata a Unity:
- strutturazione del codice con variabili, array e cicli,
- controllo del flusso tramite condizioni,
- e l’uso dell’Inspector per creare esperimenti pratici interattivi.
L’obiettivo finale è costruire solide basi per comprendere la programmazione dei comportamenti dinamici nei videogiochi, dove loop, array e casualità sono strumenti fondamentali per gameplay, IA e simulazioni.