Hi everyone. I'm having a really hard time trying to do what it seems to be a pretty simple task: creating an array of rectangles that can be filled with one of four different colors. The screen is "divided" in four regions (upper left, upper right, lower left, lower right) and the rectangle's color is assigned depending on which region it is located.
The problem is I'm getting some rectangles in the upper row with the colors that is supposed to be assigned to the lower row rectangles.
This is my code:
- int altura = 1000;
- int cuadrado = 100;
- float vacio = 99.5;
- Cajita[][] cajitas;// = new Cajita [altura/2][altura/2];
- void setup()
- {
- size (altura, altura);
- cajitas = new Cajita [(altura/cuadrado)][(altura/cuadrado)];
- frameRate(1);
- background(0);
- for (int i = 0; i < (altura/cuadrado); i++)
- {
- if (i < ((altura/cuadrado)/2))
- {
- for (int j = 0; j < (altura/cuadrado); j++)
- {
- if (j < ((altura/cuadrado)/2))
- {
- float test = random(0,100);
- boolean _ocupado = test < vacio;
- //color col = color(int(map(float(i), 0.0, float(altura/cuadrado)/2, 50.0, 255.0)),int(map(float(j), 0.0, float(altura/cuadrado)/2, 50.0, 255.0)),50);
- color col0 = color(255,0,0);
- cajitas[i][j] = new Cajita(i*(cuadrado), j*(cuadrado), cuadrado, col0, _ocupado);
- cajitas[i][j].create();
- /*if (cajitas[i][j].ocupadin()==true)
- {
- cajitas[i][j].create();
- }*/
- }
- else
- {
- float test = random(0,100);
- boolean _ocupado = test < vacio;
- //color col = color(50, int(map(float(i), 0.0, float(altura/cuadrado)/2, 50.0, 255.0)),int(map(float(j), float(altura/cuadrado)/2, float(altura/cuadrado), 50.0, 255.0)));
- color col1 = color(0,255,0);
- cajitas[i][j] = new Cajita(i*(cuadrado), j*(cuadrado), cuadrado, col1, _ocupado);
- cajitas[i][j].create();
- /*if (cajitas[i][j].ocupadin()==true)
- {
- cajitas[i][j].create();
- }*/
- }
- }
- }
- else
- {
- for (int j = 0; j < (altura/cuadrado); j++)
- {
- if (j < ((altura/cuadrado)/2))
- {
- float test = random(0,100);
- boolean _ocupado = test < vacio;
- //color col = color(int(map(float(i), float(altura/cuadrado)/2, float(altura/cuadrado), 50.0, 255.0)),50, int(map(float(j), 0.0, float(altura/cuadrado)/2, 50.0, 255.0)));
- color col2 = color(0,0,255);
- cajitas[i][j] = new Cajita(i*(cuadrado), j*(cuadrado), cuadrado, col2, _ocupado);
- cajitas[i][j].create();
- /*if (cajitas[i][j].ocupadin()==true)
- {
- cajitas[i][j].create();
- }*/
- }
- else
- {
- float test = random(0,100);
- boolean _ocupado = test < vacio;
- //color col = color(int(map(float(i), float(altura/cuadrado)/2, float(altura/cuadrado), 50.0, 255.0)),int(map(float(j), float(altura/cuadrado)/2, float(altura/cuadrado), 50.0, 255.0)), int(map(float(j), float(altura/cuadrado)/2, float(altura/cuadrado), 50.0, 255.0)));
- color col3 = color(255,0,255);
- cajitas[i][j] = new Cajita(i*(cuadrado), j*(cuadrado), cuadrado, col3, _ocupado);
- cajitas[i][j].create();
- /*if (cajitas[i][j].ocupadin()==true)
- {
- cajitas[i][j].create();
- }*/
- }
- }
- }
- }
- }
- class Cajita
- {
- int x, y, d;
- color micolor;
- boolean ocupado;
- Cajita (int _x, int _y, int _d, color _c, boolean _o)
- {
- x = _x;
- y = _y;
- d = _d;
- micolor = _c;
- ocupado = _o;
- }
- void create()
- {
- rect(x,y,d,d);
- fill(micolor);
- }
- boolean ocupadin()
- {
- return ocupado;
- }
- color micolor()
- {
- return micolor;
- }
- void updateLive(color newColor)
- {
- ocupado = true;
- rect(x,y,d,d);
- fill(newColor);
- }
- void updateDead()
- {
- ocupado = false;
- rect(x,y,d,d);
- fill(0,0,0);
- }
- }
Can anyone help me? I've been stuck with this problems for almost 1 week!!! Any help is very much appreciated.
Cheers!
1