Vai al contenuto

ūüď£ sulla piattaforma e-learning di Codice Inutile sono disponibili i miei corsi: Introduzione alla programmazione e ūüÜē Introduzione all'Arte Generativa

Controlli condizionali III: Variabili booleane

ūüď¨ Per rimanere aggiornato sui prossimi articoli e su altri contenuti di creative coding, puoi iscriverti a questa newsletter. Per farlo √® sufficiente inserire il tuo indirizzo e-mail nel campo qui sotto.

Puoi leggere l'archivio qui. Powered by TinyLetter

Nel primo post dedicato ai controlli condizionali ho fatto un accenno alle variabili di tipo booleano anche se non mi sono soffermato troppo su di esse. Per il momento sappiamo solo che possono assumere un valore true oppure false ma non abbiamo ancora imparato come dichiararle o utilizzarle.

Ovviamente dobbiamo rispettare¬†i principi che abbiamo gi√† visto quando abbiamo parlato di variabili: in fase di dichiarazione dobbiamo assegnare un data type ‚Äď boolean in questo caso ‚Äď e un nome:

boolean var = true;

Ecco che abbiamo creato una variabile chiamata var di tipo booleano il cui suo valore iniziale sia true.

Come possiamo utilizzare questa variabile? Ecco un esempio pratico:

boolean var = true;
int ellipseX = 0;

void setup() {
  size(500, 500);
}

void draw() {
  background(0);
  ellipse(ellipseX, height/2, 50, 50);
  if(var) {
    ellipseX++;
  }
}

void mousePressed() {
  var = !var;
}

Questo programma √® molto simile a un altro programma che abbiamo gi√† visto ma c’√® una differenza sostanziale: ora, infatti, abbiamo un maggior controllo sul nostro cerchio: quando clicchiamo il mouse all’interno della finestra, il cerchio¬†si ferma.

All’interno del ciclo draw() aumentiamo il valore della variabile ellipseX¬†‚Äď che determina la posizione del cerchio ‚Äď solo nel caso in cui la variabile booleana nominata¬†var sia¬†true.

Nella funzione mousePressed()¬†abbiamo usato l’operatore logico NOT che inverte il valore della variabile¬†var. Se infatti partiamo dal presupposto che la variabile sia¬†true, come previsto dall’inizializzazione, al click del mouse¬†var diventer√† NOT true quindi false. Viceversa, se la variabile ha un valore false al click viene assegnato un valore NOT false quindi true.

Mi rendo conto che questo passaggio possa essere un po’¬†ostico quindi, per aiutarvi, riscrivo la funzione mousePressed() in modo pi√Ļ¬†semplice:

void mousePressed() {
 if(var) {
 var = false;
 } else {
 var = true;
 }
}

Con l’operatore NOT ho reso il mio codice pi√Ļ leggibile riducendo il numero di righe, da cinque a una soltanto, per cambiare il valore della variabile.

A questo punto vi propongo un altro esercizio: e se volessi fare in modo che il mio cerchio anziché fermarsi torni indietro al click del mouse? Buon lavoro!

Articolo precedente

Esercizio 2: I quattro quadranti

Articolo successivo

Loop: while

Unisciti alla discussione

  1. boolean var = true;
    int ellipseX = 0;

    void setup() {
    size(500, 500);
    }

    void draw() {
    background(0);
    ellipse(ellipseX, height/2, 50, 50);
    if(var) {
    ellipseX++;
    }
    else {
    ellipseX–;
    }
    }

    void mousePressed() {
    var = !var;
    }

  2. Ho pensato a una soluzione nella quale il cerchio non esce mai dallo schermo, ma torna indietro quando tocca il bordo.
    int ellipseX;
    boolean var = true;
    int a = 1;
    void setup() {
    size (540, 540);
    ellipseX = 25;
    }

    void draw() {
    background (0);
    ellipse(ellipseX, height/2, 50, 50);
    if (var) {
    ellipseX = ellipseX + a;
    println (ellipseX);
    if (ellipseX > width-25 || ellipseX < 25) {
    a = a*-1;
    }
    }
    }

    void mousePressed() {
    var = !var;
    }

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.