DiGrande.it

Non Vedenti, Braille e Tecnologie di Stampa

Questo sito usa Cookie per personalizzare contenuti e annunci, fornire funzionalità per social media e analizzare i collegamenti. Chiudendo questo banner o continuando la navigazione acconsenti al loro uso.
Leggi la Cookie Policy di DiGrande.it

Ancora stelle da toccare, per giocare col coding e la grafica tattile

Pubblicato il 10/08/2020 16:30 
 

Il cielo stellato di qualche giorno fa ha suscitato l'interesse di diverse persone. Evidentemente il coding Tattile con i riferimenti alla Natura affascina chi vuole avvicinarsi alla Programmazione. Perciò in questo articolo voglio riproporre il cielo stellato, realizzato seguendo un altro algoritmo, scrivendo il codice in un altro modo e utilizzando altre istruzioni.

Una persona mi chiedeva se nel Linguaggio fosse possibile utilizzare un array. Ancora no, ma prevenire il Disegno di una stella sopra una stella già esistente può essere fatto in un altro modo. Una memoria delle stelle che abbiamo scritto l'abbiamo nella stessa area Grafica, che in questo caso fa le veci di un array bidimensionale. Quindi sfruttiamola, per Scrivere il Disegno delle stelle in un altro modo.

Come il precedente, questo codice ha una valenza Didattica. In coda spiegherò le istruzioni che ho utilizzato. Copiaincollandolo in un nuovo Foglio di Grafica Tattile disegna 250 punti tattili in modo casuale, evitando la sovrapposizione di stelle e, di conseguenza, scongiurando la Formazione di buchi neri che ci inghiottirebbero tutti.


n = 0
While
x = Random(width)
y = Random(height)
if Dot(x,y)<>ClBlack
Dot(x,y,ClBlack)
n = n + 1
EndIf
EndWhile n>=250


Questa volta ho utilizzato un ciclo While che racchiude diverse istruzioni. Il ciclo viene eseguito 250 volte, di conseguenza disegna 250 punti reali. Il valore 250 può essere diminuito o aumentato, al fine di ridurre o aumentare il numero di punti tattili che rappresentano le stelle.

Il codice inizia assegnando il valore 0 alla variabile n. La variabile n è il contatore che ci serve per conteggiare quante stelle reali stiamo tracciando.

L'Istruzione While ci fa entrare dentro il ciclo di tracciamento. L'Istruzione non utilizza condizioni, pertanto nel ciclo ci entreremo sempre, almeno una volta. La condizione che controlla la variabile contatore la porremo alla fine, nell'Istruzione EndWhile, quella che eventualmente ci farà uscire dal ciclo.

Nella variabile x memorizzo il risultato dell'Istruzione Random. L'Istruzione Random restituisce un numero casuale che va da 0 fino al valore -1 indicato come parametro. Come parametro dell'Istruzione Random ho utilizzato la costante width. Width contiene la larghezza corrente dell'area Grafica. Quindi Random restituirà valori casuali che vanno da 0 a width -1.
Nella variabile y ho memorizzato un altro numero casuale, con una procedura simile a quella per la variabile x. In questo caso all'Istruzione Random ho passato la costante height, che contiene sempre l'altezza dell'area Grafica.

Utilizzo poi un costrutto If. If controlla nella sua condizione se nella coordinata x y ci sia già tracciato un punto. Mi avvalgo dell'Istruzione Dot e della sua doppia funzione. Dot può essere utilizzata sia per tracciare un punto, sia per farsi restituire il Colore di un punto alla coordinata specificata. Nel nostro caso, se nella coordinata x y il Colore è diverso dalla costante ClBlack (cioè nero), la condizione si avvera e si entra dentro il costrutto If (Then sott'inteso).

Quindi traccio un punto nero avvalendomi dell'Istruzione Dot, specificando stavolta anche il Colore con cui tracciare il punto.
Prima di uscire dal costrutto If, incremento la variabile n, dato che una stella è stata realmente tracciata. Quindi esco con EndIf.

L'Istruzione finale EndWhile contiene il controllo della variabile n. La condizione di uscita dal ciclo si avvera quando n è uguale o maggiore di 250, quindi quando sono state realmente disegnate 250 stelle.

Per ulteriore supporto ci si può iscrivere nel Gruppo di Biblos su Facebook.