import java.awt.*;
import java.applet.*;
import java.lang.Integer;
import java.util.Random;

public class MetBaraja extends Applet{
	Button b,b2;
	Label lb,lb2,lb3,lb4;
	TextField n1,n2,n3,n4,n5,n6,n7,n8;
	Checkbox op1,op2,op3,op4;
	CheckboxGroup gpo1=new CheckboxGroup();
	CheckboxGroup gpo2=new CheckboxGroup();
	Panel p,p2,p3;
	Random NumAl=new Random();
	int[] vect=new int[8];
	boolean ban1,ban2;
  
	public void init(){
		lb4=new Label("BARAJA");	add(lb4);
		p=new Panel();		add(p);
		p2=new Panel();	add(p2);
		p3=new Panel();	add(p3);
		lb2=new Label("Presentación");				p.add(lb2);
		op1=new Checkbox("Ascendente",gpo1,true);		p.add(op1);
		op2=new Checkbox("Descendente",gpo1,false);	p.add(op2);
		lb3=new Label("Datos");							p2.add(lb3);
		op3=new Checkbox("Aleatoreos",gpo2,false);		p2.add(op3);
		op4=new Checkbox("Personalizados",gpo2,true);	p2.add(op4);
		b=new Button("Ordenar");	p2.add(b);
		b2=new Button("Limpiar");	p.add(b2);
		lb=new Label("Números");	p3.add(lb);
		n1=new TextField("");		p3.add(n1);
		n2=new TextField("");		p3.add(n2);
		n3=new TextField("");		p3.add(n3);
		n4=new TextField("");		p3.add(n4);
		n5=new TextField("");		p3.add(n5);
		n6=new TextField("");		p3.add(n6);
		n7=new TextField("");		p3.add(n7);
		n8=new TextField("");		p3.add(n8);
		ban1=true;		ban2=false;
	}
  
	public boolean action(Event evt,Object obj){
		if(evt.target instanceof Button){
			if( evt.target.equals(b) ){
				if(!ban2)
					Capturar();
				Baraja();
				Mostrar();
			}
			if( evt.target.equals(b2) )
				Limpiar();
		}
		else{
			if( evt.target.equals(op1) )
				ban1=true;
			if( evt.target.equals(op2) )
				ban1=false;
			if( evt.target.equals(op3) ){
				ban2=true;
				GenerarNum();
				Mostrar();
			}
			if( evt.target.equals(op4) ){
				ban2=false;
				Limpiar();
			}
		}
		return true;
	}
  
	public void Capturar(){
		String a;
		a=n1.getText();
		if(a.compareTo("")==0)
			vect[0]=0;
		else
			vect[0]=( Integer.valueOf(a).intValue() );
		n1.setText("");
		a=n2.getText();
		if(a.compareTo("")==0)
			vect[1]=0;
		else
			vect[1]=( Integer.valueOf(a).intValue() );
		n2.setText("");
		a=n3.getText();
		if(a.compareTo("")==0)
			vect[2]=0;
		else
			vect[2]=( Integer.valueOf(a).intValue() );
		n3.setText("");
		a=n4.getText();
		if(a.compareTo("")==0)
			vect[3]=0;
		else
			vect[3]=( Integer.valueOf(a).intValue() );
		n4.setText("");
		a=n5.getText();
		if(a.compareTo("")==0)
			vect[4]=0;
		else
			vect[4]=( Integer.valueOf(a).intValue() );
		n5.setText("");
		a=n6.getText();
		if(a.compareTo("")==0)
			vect[5]=0;
		else
			vect[5]=( Integer.valueOf(a).intValue() );
		n6.setText("");
		a=n7.getText();
		if(a.compareTo("")==0)
			vect[6]=0;
		else
			vect[6]=( Integer.valueOf(a).intValue() );
		n7.setText("");
		a=n8.getText();
		if(a.compareTo("")==0)
			vect[7]=0;
		else
			vect[7]=( Integer.valueOf(a).intValue() );
		n8.setText("");
	}
  
	public void Mostrar(){
		if(ban1){
			n1.setText( Integer.toString(vect[0]) );
			n2.setText( Integer.toString(vect[1]) );
			n3.setText( Integer.toString(vect[2]) );
			n4.setText(	Integer.toString(vect[3]) );
			n5.setText(	Integer.toString(vect[4]) );
			n6.setText( Integer.toString(vect[5]) );
			n7.setText( Integer.toString(vect[6]) );
			n8.setText( Integer.toString(vect[7]) );
		}
		else{
			n1.setText( Integer.toString(vect[7]) );
			n2.setText( Integer.toString(vect[6]) );
			n3.setText( Integer.toString(vect[5]) );
			n4.setText(	Integer.toString(vect[4]) );
			n5.setText(	Integer.toString(vect[3]) );
			n6.setText( Integer.toString(vect[2]) );
			n7.setText( Integer.toString(vect[1]) );
			n8.setText( Integer.toString(vect[0]) );
		}
	}
	
	public void Limpiar(){
		n1.setText("");
		n2.setText("");
		n3.setText("");
		n4.setText("");
		n5.setText("");
		n6.setText("");
		n7.setText("");
		n8.setText("");
	}
	
	public void Baraja(){
		int i,j,x,aux;
		for(i=1; i<8; i++){   
			x=vect[i];
			j=i-1;
			while( x<vect[j] && j>0 ){
				vect[j+1]=vect[j];
				j=j-1;
			}
			if(j==0 && x<vect[j]){
				vect[j+1]=vect[j];
				vect[j]=x;  
			}
			else
				vect[j+1]=x;
		}
	}
	
	public void GenerarNum(){
		for(int i=0; i<8; i++){
			vect[i]=NumAl.nextInt();
			while(vect[i]<0 || vect[i]>99){
				if(vect[i]<0)
					vect[i]=vect[i]*(-1);
				else
					vect[i]=vect[i]/10;
			}
		}
	}
}
