Logo ITP-NEWS
RSS | Contatti | Login|Registrati| Home
giornali
Creare una scacchiera con il linguaggio Processing
Di Fusco Francesco::2012-04-19
Condividi questo articolo
Creare una scacchiera nel linguaggio di programmazione Processing non risulta difficile, anzi è abbastanza banale.

La prima cosa da fare è calcolare la dimensione di ogni casella, dividendo la dimensione della scacchiera per il numero di caselle. Si suppone che la scacchiera non abbia un bordo:


int dx=width/8;
int dy=height/8;



Dividiamo la scacchiera in 8 x 8 celle, ognuna individuata da un indice di riga i e da un indice di colonna j.
Bisogna poi disegnare le 8 x 8 caselle (una nera e una bianca, affiancate ed alternate). Per controllare se la casella da disegnare è bianca o nera verifichiamo se la somma dell'indice di riga e dell'indice di colonna è pari o dispari. Dobbiamo considerare però che la prima casella in basso a destra è sempre bianca (per convenzione), e quindi scriveremo:


if((i+j+1)%2!=0) // la somma di i+j+1 è dispari, perché non è divisibile per 2



In tal caso, cioè se la somma di i+j+1 è dispari e quindi imposteremo il colore della casella la casella come nero e creiamo il rettangolo


if((i+j+1)%2!=0) // la somma di i+j+1 è dispari, perché non è divisibile per 2
{
fill(0);
rect(j*dx,i*dy,dx-1,dx-1);
}



Come disegneremo il rettangolo della casella?
Useremo la funzione rect che chiede come argomenti le coordinate del vertice iniziale del rettangolo (basso a sinistra) , la dimensione della base e la dimensione dell'altezza.
Come calcoliamo le coordinate di ogni vertice di tutte le caselle ? Ragioniamo in questo modo.
Ogni casella è individuata da un indice di riga i e da un indice di colonna j, quindi l'ascissa del rettangolo che individua la casella (i,j) si ottiene dalla formula

j*dx

cioè moltiplicando la colonna j per il lato dx del rettangolo. Abbiamo quindi i seguenti valori:

j=0 x=0*dx=0
j=1 x=1*dx=dx
j=2 x=2*dx=2dx
j=3 x=3*dx=3dx

Lo stesso discorso si ripete per l'ordinata del vertice, che si ottiene dalla formula

i*dy

Ovviamente dx e dy dovranno essere uguali perché le caselle sono tutte quadrate.

Ed ecco la procedura completa!


// Procedura per il disegno di una scacchiera 8 x 8 bianco e nera
void scacchiera()
{
int i,j;
int dx=width/8;
int dy=height/8;
for(i=0;i<8;i++)
for(j=0;j<8;j++)
{
if((i+j+1)%2!=0)
{
fill(0);
rect(j*dx,i*dy,dx-1,dx-1);
}
}
}


Invece il programma che richiama tale procedura è il seguente:


size(600,600);
background(255);
scacchiera();


scacchiera8x10.png

Invia questo articolo ad un amico

Nome Mittente
Email Mittente
Nome Destinatario
Email Destinatario
Messaggio

Free Web Hosting with Website Builder

Gli ultimi articoli


Java e array -- ricerca di un elemento in un array
Array in Java
Gestione dei file in Php
Protocollo ARP
Come convertire caratteri in Ascii in Java
Conversione di un numero da stringa ad intero e viceversa
Tabella di struct - memorizzare i conti ed i nomi dei clienti
Un esempio di struct in C
In tutta Italia il "sabato del pinguino" festa di Linux e del software Libero
Inserimento di un elemento di un insieme S, che verifica una certa proprietà P, in un secondo insieme T
Webmaster
Home
Condizioni d'utilizzo
Privacy
Mappa del sito
Contattateci
(C) Teaching OnLine (Napoli) - 2009