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 ) ; } }