import java.applet.Applet; import java.awt.*; import java.awt.event.*; public class f_color extends Applet{ int ld[][] ={{40,40,300,40},{40,60,280,60},{60,80,260,80},{100,100,220,100}, {140,120,180,120},{140,120,180,120},{140,120,180,120},{60,140,140,140}, {60,140,140,140},{60,140,140,140},{140,160,180,160},{120,180,200,180}, {80,200,240,200},{60,220,260,220},{40,240,300,240},{40,40,40,240}, {60,80,60,220},{80,60,80,80},{80,140,80,200},{100,100,100,140}, {100,200,100,220},{120,80,120,100},{120,140,120,180},{140,120,140,160}, {140,180,140,200},{160,60,160,80},{160,100,160,120},{160,160,160,180}, {160,200,160,220},{180,120,180,160},{180,180,180,200},{200,80,200,100}, {200,140,200,180},{220,100,220,140},{220,200,220,220},{240,60,240,80}, {240,140,240,200},{260,80,260,140},{280,60,280,140},{300,40,300,240}, {180,140,280,140},{260,160,260,220},{260,160,300,160}}; int pn = 1; int cn; int dx,dy; int px,py; int ec[] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}; int td[][] = {{ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, { 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 1}, { 2, 6, 6, 6, 7, 7, 7, 7, 8, 8, 8, 5, 1}, { 2, 6, 6, 9, 9, 9,10,10,10, 8, 8, 5, 1}, { 2, 6, 6, 9, 9,11,11,10,10, 8, 8, 5, 1}, { 2,12,13,13,14,11,11,15,16,16, 1, 1, 1}, { 2,12,13,13,14,14,15,15,16,16, 1, 2, 2}, { 2,12,13,13,13,17,17,16,16,16, 1, 2, 2}, { 2,12,12,18,18,18, 0, 0, 0, 1, 1, 2, 2}, { 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2}}; int ecn[] = {5,7,6,5,5,3,6,6,6,6,6,4,4,6,5,5,6,6,5}; int en[][] = {{1,2,16,17,18},{2,3,4,5,8,16,0},{1,3,6,12,18,0}, {1,2,4,6,7},{1,3,5,7,8},{1,4,8},{2,3,7,9,12,13}, {3,4,6,8,9,10},{1,4,5,7,10,16},{6,7,10,11,13,14}, {7,8,9,11,15,16},{9,10,14,15},{2,6,13,18}, {6,9,12,14,17,18},{9,11,13,15,17},{10,11,14,16,17}, {8,10,15,17,0,1},{14,15,13,16,18,0},{12,13,17,0,2}}; int fg = 0; Button rep; public void init(){ setBackground(Color.white); addMouseListener( new MouseAdapter(){ public void mousePressed(MouseEvent e){ dx = e.getX(); dy = e.getY(); px = dx / 20 -2; py = dy / 20 -2; if((dx > 60) && (dx < 100) && (dy > 260) && (dy < 300)){ pn = 1; repaint(); } if((dx > 120) && (dx < 160) && (dy > 260) && (dy < 300)){ pn = 2; repaint(); } if((dx > 180) && (dx < 220) && (dy > 260) && (dy < 300)){ pn = 3; repaint(); } if((dx > 240) && (dx < 280) && (dy > 260) && (dy < 300)){ pn = 4; repaint(); } if((dx > 40) && (dx < 300) && (dy > 40) && (dy < 240)){ if(ec[td[py][px]] == pn){ ec[td[py][px]] = 0; repaint(); }else{ for(int c = 0;c < ecn[td[py][px]];c ++){ if(pn == ec[en[td[py][px]][c]]){ fg = 1; } } if(fg == 0){ ec[td[py][px]] = pn; repaint(); } fg = 0; } } } } ); setLayout(new FlowLayout()); add(rep = new Button(" replay ")); rep.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){ for(int s = 0;s < 19;s ++){ ec[s] = 0; } repaint(); } }); } public void paint(Graphics g){ g.setColor(new Color(127,74,181)); g.fillRoundRect(pn * 60 - 3,257,46,46,15,15); g.setColor(Color.blue); g.fillRoundRect(60,260,40,40,15,15); g.setColor(Color.green); g.fillRoundRect(120,260,40,40,15,15); g.setColor(Color.red); g.fillRoundRect(180,260,40,40,15,15); g.setColor(Color.yellow); g.fillRoundRect(240,260,40,40,15,15); for(int i = 0;i < 13;i ++){ for(int j = 0;j < 10;j ++){ cn = ec[td[j][i]]; if(cn == 1){g.setColor(Color.blue); }else if(cn == 2){g.setColor(Color.green); }else if(cn == 3){g.setColor(Color.red); }else if(cn == 4){g.setColor(Color.yellow); }else{g.setColor(Color.white); } g.fillRect(i * 20 + 40,j * 20 + 40,20,20); } } g.setColor(Color.black); for(int k = 0;k < 48;k ++){ g.drawLine(ld[k][0],ld[k][1],ld[k][2],ld[k][3]); } } }