import java.applet.*; import java.awt.*; import java.awt.event.*; public class r_square extends Applet implements Runnable{ Thread th = null; Image os; Graphics og; int td[][] = {{0,0,1,1,0,0},{0,0,1,1,0,0},{1,1,1,1,1,1},{1,1,1,1,1,1},{0,0,1,1,0,0},{0,0,1,1,0,0}}; int cd[][] = {{2,8,9,3},{8,14,15,9},{14,20,21,15},{20,26,27,21},{26,32,33,27},{12,18,19,13},{13,19,20,14}, {15,21,22,16},{16,22,23,17},{8,13,20,15},{9,14,21,16},{14,19,26,21},{15,20,27,22},{2,12,26,16}, {3,13,27,17},{8,18,32,22},{9,19,33,23},{8,19,27,16},{9,13,26,22},{2,18,33,17},{3,12,32,23}}; int px,py,ch=0,no=6,sw=0; public void init(){ os = createImage(240,270); og = os.getGraphics(); addMouseListener( new MouseAdapter(){ public void mousePressed(MouseEvent e){ if((e.getX()>30)&&(e.getX()<90)&&(e.getY()>230)&&(e.getY()<250)){ if(ch == 0){ ch = 1; }else{ ch = 0; } }else if((e.getX()>150)&&(e.getX()<210)&&(e.getY()>230)&&(e.getY()<250)){ if(ch == 1)ch = 0; for(int rx = 0;rx < 6;rx ++){ for(int ry = 0;ry < 6;ry ++){ td[ry][rx] = td[ry][rx]*td[ry][rx]; } } no = 6; }else{ if(ch == 1)ch = 0; px = (e.getX() - 30) / 30; py = (e.getY() - 30) / 30; if(td[py][px] == 1){ if(no > 0){ td[py][px] = -1; no --; } }else if(td[py][px] == -1){ td[py][px] = 1; no ++; } } repaint(); } } ); } public void paint(Graphics g){ og.setColor(Color.white); og.fillRect(0,0,240,270); for(int dx = 0;dx < 6;dx ++){ for(int dy = 0; dy < 6;dy ++){ if(td[dy][dx] == 1){ for(int i = 0;i < 16;i++){ og.setColor(new Color(10,10,100+(int)(150*Math.sin(1.57*i/16)))); og.fillOval(dx*30+30+i,dy*30+30+i,32-2*i,32-2*i); } }else if(td[dy][dx] == -1){ og.setColor(Color.black); og.fillOval(dx*30+42,dy*30+42,6,6); } } } og.setColor(Color.lightGray); og.fillRoundRect(30,230,60,20,5,5); og.fillRoundRect(150,230,60,20,5,5); og.setColor(Color.darkGray); og.drawRoundRect(30,230,60,20,5,5); og.drawRoundRect(150,230,60,20,5,5); og.setFont(new Font("",Font.BOLD,20)); og.setColor(Color.black); og.drawString("check",34,246); og.drawString("reset",157,246); og.setColor(Color.lightGray); og.setFont(new Font("",Font.BOLD,30)); og.drawString(""+no,115,250); og.setColor(Color.black); og.setFont(new Font("",Font.BOLD,30)); og.drawString(""+no,113,249); if(ch == 1){ og.setColor(Color.red); sw = 1; for(int s1 = 0;s1 < 21;s1 ++){ if(td[cd[s1][0]/6][cd[s1][0]%6]+td[cd[s1][1]/6][cd[s1][1]%6]+td[cd[s1][2]/6][cd[s1][2]%6]+td[cd[s1][3]/6][cd[s1][3]%6] == 4){ og.drawLine(cd[s1][0]%6*30+45,cd[s1][0]/6*30+45,cd[s1][1]%6*30+45,cd[s1][1]/6*30+45); og.drawLine(cd[s1][1]%6*30+45,cd[s1][1]/6*30+45,cd[s1][2]%6*30+45,cd[s1][2]/6*30+45); og.drawLine(cd[s1][2]%6*30+45,cd[s1][2]/6*30+45,cd[s1][3]%6*30+45,cd[s1][3]/6*30+45); og.drawLine(cd[s1][3]%6*30+45,cd[s1][3]/6*30+45,cd[s1][0]%6*30+45,cd[s1][0]/6*30+45); sw = 0; } } } if((sw == 1)&&(no == 0)&&(ch == 1)){ og.setFont(new Font("",Font.BOLD,60)); og.setColor(Color.black); og.drawString("clear!!",48,142); og.setColor(Color.red); og.drawString("clear!!",45,140); } 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 ) ; } }