import java.applet.*;
import java.awt.*;
import java.awt.event.*;
public class v_buildings extends Applet implements Runnable{
int td[][] = new int[6][6];
int tdc[][] = new int[6][6];
Choice cho = new Choice();
Label spa;
int pd[][][] = {{{4,2,4,1,2,3},{3,2,1,5,4,2},{3,1,3,2,4,2},{2,2,1,3,2,4}},
{{3,2,2,3,1,3},{2,3,4,1,2,2},{3,5,2,1,5,2},{2,4,4,1,2,4}},
{{2,4,4,1,2,3},{3,4,2,4,2,1},{1,2,4,2,3,2},{2,2,2,3,1,4}},
{{2,3,4,1,3,2},{3,1,2,2,3,2},{5,1,5,2,3,2},{4,1,3,2,3,2}}};
int max[] = new int[6];
int che[] = new int[6];
int px,py,co;
int pn = 0;
Thread th = null;
Image os;
Graphics og;
public void init(){
os = createImage(270,270);
og = os.getGraphics();
setBackground(Color.white);
setLayout(new BorderLayout());
Panel pan = new Panel();
pan.setLayout(new FlowLayout());
pan.add(cho);
cho.addItem(" No.1 ");
cho.addItem(" No.2 ");
cho.addItem(" No.3 ");
cho.addItem(" No.4 ");
cho.addItemListener(new MyListener());
add("South",pan);
addMouseListener(
new MouseAdapter(){
public void mousePressed(MouseEvent e){
px = (e.getX() - 15) / 30;
py = (e.getY() - 15) / 30;
if((px>=1)&&(px<=6)&&(py>=1)&&(py<=6)){
td[py-1][px-1] ++;
if(td[py-1][px-1] > 6)td[py-1][px-1] = 0;
}
repaint();
}
}
);
}
class MyListener implements ItemListener{
public void itemStateChanged(ItemEvent e){
Choice cho = (Choice)e.getSource();
switch(cho.getSelectedIndex()){
case 0 : pn = 0 ; break;
case 1 : pn = 1 ; break;
case 2 : pn = 2 ; break;
case 3 : pn = 3 ; break;
}
for(int d1 = 0;d1 < 6;d1 ++){
for(int d2 = 0;d2 < 6;d2 ++){
td[d2][d1] = 0;
tdc[d2][d1] = 0;
}
}
repaint();
}
}
public void paint(Graphics g){
og.setColor(Color.white);
og.fillRect(0,0,270,270);
for(int k1 = 0;k1 < 6;k1 ++){
for(int k2 = 0;k2 < 6;k2 ++){
og.setColor(Color.yellow);
og.fill3DRect(k1*30+45,k2*30+45,30,30,true);
}
}
for(int k1 = 0;k1 < 6;k1 ++){
og.setFont(new Font("",Font.BOLD,24));
for(int k2 = 0;k2 < 6;k2 ++){
if(td[k2][k1] != 0){
og.setColor(Color.darkGray);
for(int k3 = 0;k3 < td[k2][k1];k3 ++){
og.fillRect(k1*30+51-td[k2][k1],k2*30+51-td[k2][k1],29-2*(6-td[k2][k1]),29-2*(6-td[k2][k1]));
}
og.setFont(new Font("",Font.PLAIN,24));
og.setColor(Color.white);
og.drawString(""+td[k2][k1],30*k1+53,30*k2+68);
}
}
max[k1] = 0 ; co = 0;
for(int k2 = 0;k2 < 6;k2 ++){
if(max[k1] < td[5-k2][k1]){
max[k1] = td[5-k2][k1];
co ++;
}
if(co == pd[pn][0][k1]){
og.setColor(Color.blue);
}else{
og.setColor(Color.red);
}
}
og.drawString(""+pd[pn][0][k1],30*k1+55,250);
max[k1] = 0 ; co = 0;
for(int k2 = 0;k2 < 6;k2 ++){
if(max[k1] < td[k1][5-k2]){
max[k1] = td[k1][5-k2];
co ++;
}
if(co == pd[pn][1][5-k1]){
og.setColor(Color.blue);
}else{
og.setColor(Color.red);
}
}
og.drawString(""+pd[pn][1][5-k1],230,30*k1+70);
max[k1] = 0 ; co = 0;
for(int k2 = 0;k2 < 6;k2 ++){
if(max[k1] < td[k2][k1]){
max[k1] = td[k2][k1];
co ++;
}
if(co == pd[pn][2][5-k1]){
og.setColor(Color.blue);
}else{
og.setColor(Color.red);
}
}
og.drawString(""+pd[pn][2][5-k1],30*k1+55,40);
max[k1] = 0 ; co = 0;
for(int k2 = 0;k2 < 6;k2 ++){
if(max[k1] < td[k1][k2]){
max[k1] = td[k1][k2];
co ++;
}
if(co == pd[pn][3][k1]){
og.setColor(Color.blue);
}else{
og.setColor(Color.red);
}
}
og.drawString(""+pd[pn][3][k1],25,30*k1+70);
for(int t1 = 0;t1 < 6;t1 ++){
che[t1] = 0;
}
for(int t2 = 0;t2 < 6;t2 ++){
if(td[k1][t2] != 0){
che[td[k1][t2]-1] = 1;
}
}
co = 1;
for(int t3 = 0;t3 < 6;t3 ++){
co = co * che[t3];
}
if(co == 1){
og.setColor(Color.blue);
og.drawRect(45,30*k1+45,179,29);
og.drawLine(15,30*k1+60,20,30*k1+60);
og.drawLine(250,30*k1+60,255,30*k1+60);
}
for(int t1 = 0;t1 < 6;t1 ++){
che[t1] = 0;
}
for(int t2 = 0;t2 < 6;t2 ++){
if(td[t2][k1] != 0){
che[td[t2][k1]-1] = 1;
}
}
co = 1;
for(int t3 = 0;t3 < 6;t3 ++){
co = co * che[t3];
}
if(co == 1){
og.setColor(Color.blue);
og.drawRect(30*k1+45,45,29,179);
og.drawLine(30*k1+60,10,30*k1+60,15);
og.drawLine(30*k1+60,255,30*k1+60,260);
}
}
g.drawImage(os,0,0,this);
}
public void start(){
if(th == null){
th = new Thread(this);
th.start();
}
}
public void stop(){
th = null;
}
public void run(){
while(th != null){
try{
Thread.sleep(100);
}
catch (InterruptedException e){
}
}
}
public void update( Graphics g ){
paint( g ) ;
}
}
