(int i = 0; i [i][j]);
g.fillRect(i *, j *, cell);
	}
	    }
	} else {
g.set();
g.fill(X, Y, , );
full= true;
	}
    }
(Evt, int x, int y) {

if (resetting) {
return true;
	}
int cellX  = x / cellWidth;
int cellY  = y / cellHeight;

X	   = cellX * cellWidth;
Y	   = cellY * cellHeight;
Color = colors[cellX][cellY].brighter();

full  = false;

// Schedule an update.
currentX  = cellX;
currentY  = cellY;
checkMove = true;
return true;
 }

(Event evt, int x, int y) {

if (resetting || !checkMove) {
return true;
	}

int cellX  = x / cellWidth;
int cellY  = y / cellHeight;

if (cellX == currentX && cellY == currentY) {
return true;
	}

private void testPattern(int x, int y) {
int[] nextMatch = pattern[next++];

if (nextMatch[0] == x && nextMatch[1] == y) {
if (next == patternLength) {

win();
getHarder();
memoryThread.resume();
 }

} else {

lose();
getRealEasy();
memoryThread.resume();
	}
    }

private void win() {
getAudioClip(getCodeBase(),").play();
    }

private void lose() {
getAudioClip(getCodeBase(),").play();
    }

private void getHarder() {
if (sleepTime > minimumDownTime) {
DownTime -= DownTimeDecrement;
	} else {
patternLength++;
DownTime = resetDownTime / 2;
	}
    }

private void getRealEasy() {
sleepTime = resetDownTime / 2;
patternLength = initialPatternLength;
    }
private void reset() {
resetting = true;

checkMove = false;
pulldown  = true;

loopVoid();

next = 0;

pattern = new int[patternLength][2];

for (int i = 0; i < patternLength; i++) {