import java.applet.*;
import java.awt.*;
import java.awt.event.*;
public class c_barrier extends Applet implements Runnable{
Thread th = null;
Image os;
Graphics og;
int td[] = {0,0,0,0,-1,-1,-1,0,0,0,0,0,0,0,0};
int sw1=1,sw2=1,co=3;
int px,py,cs;
public void init(){
os = createImage(680,120);
og = os.getGraphics();
addMouseListener(
new MouseAdapter(){
public void mousePressed(MouseEvent e){
px = e.getX();
py = e.getY();
if((px > 275) && (px < 320)){
if((py > 85) && (td[0] == 0)){
for(int r1 = 0;r1 < 14;r1 ++){
td[r1] = td[r1+1];
}
td[14] = 0;
}else if((py < 35) && (td[14] == 0) && (sw2 == 1)){
for(int r1 = 0;r1 < 14;r1 ++){
td[14-r1] = td[13-r1];
}
td[0] = 0;
}else if((py > 35) && (py < 85) && (sw1 == 1)){
td[6] = td[6] * -1;
}
if(td[7] == 0){
sw1 = 1 ; sw2 = 1;
}else if(td[7] == 1){
sw1 = -1 ; sw2 = 1;
}else if(td[7] == -1){
sw1 = 1 ; sw2 = -1;
}
}else if((px > 395) && (px < 440)){
if(py < 35){
co ++;
if(co > 7)co = 7;
}else if(py > 85){
co --;
if(co < 3)co = 3;
}
for(int d1= 0;d1 < 15;d1 ++)td[d1] = 0;
for(int d2= 0;d2 < co;d2 ++)td[6-d2] = -1;
sw1 = 1;sw2 = 1;
}
repaint();
}
}
);
}
public void paint(Graphics g){
og.setColor(Color.white);
og.fillRect(0,0,680,120);
og.setColor(new Color(152,251,152));
og.fillRoundRect(20,20,630,80,40,40);
og.setColor(Color.black);
og.drawRoundRect(20,20,630,80,40,40);
og.setColor(Color.white);
og.fillRoundRect(35,35,603,50,20,20);
og.setColor(Color.gray);
og.drawRoundRect(35,35,603,50,20,20);
og.setColor(Color.blue);
og.setFont(new Font("",Font.BOLD,20));
og.drawString(">>>>>>>>>>>>>>>>>>>>>",380,68);
og.setColor(Color.black);
og.drawOval(328,53,15,15);
og.setColor(Color.gray);
og.fillOval(330,55,12,12);
for(int c1 = 0;c1 < 15;c1 ++){
if(td[c1] != 0){
if(td[c1] == 1){
og.setColor(new Color(0,30,220));
}else if(td[c1] == -1){
og.setColor(new Color(220,0,30));
}
og.fillRoundRect(c1*40+37,37,38,46,20,20);
og.setColor(Color.gray);
og.drawRoundRect(c1*40+37,37,38,46,20,20);
og.drawRoundRect(c1*40+39,39,34,42,20,20);
}
}
if(sw1 == 1){
og.setColor(Color.blue);
}else if(sw1 == -1){
og.setColor(Color.red);
}
og.drawRect(275,34,41,52);
og.drawRect(277,36,37,48);
if(sw2 == 1){
og.setColor(Color.blue);
}else if(sw2 == -1){
og.setColor(Color.red);
}
og.fillRoundRect(347,25,18,10,5,5);
og.fillRoundRect(347,85,18,10,5,5);
og.setColor(Color.black);
og.drawRoundRect(347,25,18,10,5,5);
og.drawRoundRect(347,85,18,10,5,5);
if(sw2 == -1){
og.setColor(Color.red);
og.fillRect(355,35,2,50);
og.setColor(Color.black);
og.drawRect(355,35,2,50);
}else if(sw2 == 1){
og.setColor(Color.lightGray);
og.fillRect(355,35,2,50);
}
og.setFont(new Font("",Font.BOLD,20));
og.setColor(Color.white);
og.fillRoundRect(275,5,40,25,10,10);
og.fillRoundRect(275,90,40,25,10,10);
og.fillRoundRect(395,5,40,25,10,10);
og.fillRoundRect(395,90,40,25,10,10);
og.setColor(Color.black);
og.drawRoundRect(275,5,40,25,10,10);
og.drawRoundRect(275,90,40,25,10,10);
og.drawRoundRect(395,5,40,25,10,10);
og.drawRoundRect(395,90,40,25,10,10);
og.drawString(">>>",280,25);
og.drawString("<<<",280,110);
og.drawLine(405,23,415,13);
og.drawLine(425,23,415,13);
og.drawLine(406,23,415,14);
og.drawLine(424,23,415,14);
og.drawLine(405,97,415,107);
og.drawLine(425,97,415,107);
og.drawLine(406,97,415,106);
og.drawLine(424,97,415,106);
og.setFont(new Font("",Font.BOLD,48));
cs = 0;
for(int c1 = 0;c1 < 7;c1 ++){
cs = cs + td[c1+8];
}
og.setColor(Color.black);
if(cs >= co)og.drawString("clear!!",122,77);
og.setColor(Color.red);
if(cs >= co)og.drawString("clear!!",120,75);
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 ) ;
}
}
