import java.applet.*; import java.awt.*; import java.awt.event.*; import java.lang.Math; public class c_disk extends Applet implements Runnable{ Thread th = null; Image os; Graphics og; int dd[][] = {{1,1,1,1,1,0}, {1,1,1,1,0,0}, {1,1,1,0,1,0}, {1,1,0,1,1,0}, {1,1,1,0,0,0}, {1,1,0,1,0,0}, {1,1,0,0,1,0}, {1,0,1,0,1,0}, {1,1,0,0,0,0}, {1,0,1,0,0,0}, {1,0,0,1,0,0}, {1,0,0,0,0,0}}; Color c[] = new Color[12]; int cd,pd; public void init(){ os = createImage(560,320); og = os.getGraphics(); setBackground(new Color(255,255,180)); c[0] = new Color(255,0,0); c[1] = new Color(0,255,0); c[2] = new Color(255,255,0); c[3] = new Color(0,0,255); c[4] = new Color(255,0,255); c[5] = new Color(0,255,255); c[6] = new Color(128,0,0); c[7] = new Color(0,128,0); c[8] = new Color(128,128,0); c[9] = new Color(0,0,128); c[10] = new Color(128,0,128); c[11] = new Color(0,128,128); addMouseListener( new MouseAdapter(){ public void mousePressed(MouseEvent e){ pd = (e.getX() - 320) / 80 + e.getY() / 80 * 3; if(e.getClickCount() == 2){ cd = dd[pd][0]; for(int rt = 0;rt < 5;rt ++){ dd[pd][rt] = dd[pd][rt+1]; } dd[pd][5] = cd; } repaint(); } } ); } public void paint(Graphics g){ og.setColor(new Color(255,255,180)); og.fillRect(0,0,560,320); og.setColor(Color.black); og.fillOval(20,20,280,280); for(int di = 0;di < 12;di ++){ og.setColor(Color.black); og.fillOval((di%3)*80+325,(di/3)*80+5,70,70); for(int dr = 0;dr < 6;dr ++){ if(dd[di][dr] == 1){ og.setColor(Color.red); og.fillArc((di%3)*80+325,(di/3)*80+5,70,70,dr*60,60); } } } for(int dr = 0;dr < 6;dr ++){ cd = 0; for(int sd = 0;sd < 12;sd ++){ cd = cd + dd[sd][dr]; } if(cd != 0){ og.setColor(c[cd-1]); og.fillArc(20,20,280,280,dr*60,60); } } 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(30); } catch (InterruptedException e){ } } } public void update( Graphics g ){ paint( g ) ; } }