Source code:
int B_SIZE = 6;
int I_SIZE = 12;
int MAP_ROW = 10;
int MAP_COL = 10;
String[] Balloons = new String[B_SIZE];
String[] Icons = new String[I_SIZE];
boolean[][] chinatown;
int[][] icon, nyc;
int WIDTH = 360;
int HEIGHT = 360;
void setup() {
size(WIDTH, HEIGHT);
background(255);
frameRate(24);
smooth();
noStroke();
fill(0,0,0);
chinatown = new boolean[MAP_ROW][MAP_COL];
icon = new int[MAP_ROW][MAP_COL];
nyc = new int[MAP_ROW][MAP_COL];
for(int i=0;i<B_SIZE;i++) Balloons[i] = "images/i" + i + ".png";
for(int i=0;i<I_SIZE;i++) Icons[i] = "images/c" + i + ".png";
for(int i=0;i<MAP_ROW;i++)
for(int j=0;j<MAP_COL;j++) {
chinatown[i][j] = false;
icon[i][j] = int( random(I_SIZE-1) );
nyc[i][j] = int( random(B_SIZE-1) );
}
}
void draw() {
for(int i=0;i<MAP_ROW;i++)
for(int j=0;j<MAP_COL;j++) {
if( chinatown[i][j] ) {
image(loadImage(Icons[ icon[i][j] ]), j*36, i*36);
}
else {
image(loadImage(Balloons[ nyc[i][j] ]), j*36, i*36);
}
}
}
void mousePressed() {
chinatown[mouseY/36][mouseX/36] = true;
}