Ver Mensaje Individual
  #3 (permalink)  
Antiguo 25/10/2010, 15:35
porito
 
Fecha de Ingreso: junio-2010
Mensajes: 44
Antigüedad: 13 años, 10 meses
Puntos: 0
Respuesta: comparar enteros en un array

Increible aportacion RyoAkiyama. Muchas muchas gracias

Desde luego que me va a ayudar. Pero aun no tengo claro una cosa....ese codigo me serviria para saber el ganador(por victorias, o en caso de empate, por puntos).
Pero yo necesito saber las victorias y puntos de todos para ordenar la clasificacion.
Y claro, puede darse el caso de que:
-Hay un ganador y este será primero en la clasificacion que con lo que me has dado lo hago.
-El segundo y tercero esten empatados a puntos y victorias
-El cuarto y quinto esten empatados a victorias pero por puntos se pone a uno cuarto y al otro quinto
-Y luego el sexto.

Esta posibilidad es solo un ejemplo. Hay muchas combianaciones, ya que puede haber tambien un triple empate a victorias y puntos....etc.

Para que te hagas una idea, tengo una liga echa de solo 3 participantes.Te pongo parte del codigo porque entero es muy largo, pero asi te haces una idea.
Los puntos, los cojo de un comboBox. Son como combates de boxeo, entonces a cada participante se le adjudica unos puntos, que se cogen de un comboBox.

Luego, alfinal, esos puntos y victorias se los paso a un metodo para ordenar la clasificacion, que seria hacer lo que tu me has puesto:


Código:
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        int indice1 = this.jComboBox1.getSelectedIndex();
        int indice2 = this.jComboBox2.getSelectedIndex();
        int indice3 = this.jComboBox3.getSelectedIndex();
        int indice4 = this.jComboBox4.getSelectedIndex();
        int indice5 = this.jComboBox5.getSelectedIndex();
        int indice6 = this.jComboBox6.getSelectedIndex();
        int contador_uno_puntos = 0;
        int contador_dos_puntos = 0;
        int contador_tres_puntos = 0;
        int contador_uno_victorias = 0;
        int contador_dos_victorias = 0;
        int contador_tres_victorias = 0;

        /***************PRIMER PARTIDO, 1-2*******************/

            if(indice1<indice3){  
                contador_uno_victorias++;             
            }else{
                if(indice1>indice3){
                    contador_dos_victorias++;
                }else{
                }
            }
            
        
        if(indice1==0) contador_uno_puntos += 10;
        else{
            if(indice1==1) contador_uno_puntos += 7;
            else{
                if(indice1==2) contador_uno_puntos += 5;
                else{
                    if(indice1==3) contador_uno_puntos += 3;
                    else{
                        if(indice1==4) contador_uno_puntos += 1;
                        else{
                            if(indice1==5 || indice1==6) contador_uno_puntos += 0;
                        }
                    }
                }
            }
        }
        if(indice3==0) contador_dos_puntos += 10;
        else{
            if(indice3==1) contador_dos_puntos += 7;
            else{
                if(indice3==2) contador_dos_puntos += 5;
                else{
                    if(indice3==3) contador_dos_puntos += 3;
                    else{
                        if(indice3==4) contador_dos_puntos += 1;
                        else{
                            if(indice3==5 || indice3==6) contador_dos_puntos += 0;
                        }
                    }
                }
            }
        }
        //}//primer else primer partido

        /***************SEGUNDO PARTIDO, 2-3*******************/
            if(indice4<indice6){   //CUANDO PASE LOS PARAMETROS AL METODO, PASAR TAMBIEN LOS DE EL C3.
                contador_dos_victorias++;
            }else{
                if(indice4>indice6){
                    contador_tres_victorias++;
                }else{
                }
            }
        if(indice4==0) contador_dos_puntos += 10;
        else{
            if(indice4==1) contador_dos_puntos += 7;
            else{
                if(indice4==2) contador_dos_puntos += 5;
                else{
                    if(indice4==3) contador_dos_puntos += 3;
                    else{
                        if(indice4==4) contador_dos_puntos += 1;
                        else{
                            if(indice4==5 || indice4==6) contador_dos_puntos += 0;
                        }
                    }
                }
            }
        }
        if(indice6==0) contador_tres_puntos += 10;
        else{
            if(indice6==1) contador_tres_puntos += 7;
            else{
                if(indice6==2) contador_tres_puntos += 5;
                else{
                    if(indice6==3) contador_tres_puntos += 3;
                    else{
                        if(indice6==4) contador_tres_puntos += 1;
                        else{
                            if(indice6==5 || indice6==6) contador_tres_puntos += 0;
                        }
                    }
                }
            }
        }

etcetera.....
....
...


ordenar_clasificacion(contador_uno_puntos, contador_dos_puntos, contador_tres_puntos, contador_uno_victorias, contador_dos_victorias, contador_tres_victorias);
Y aqui te pongo como ordeno yo la clasificacion: jlabel 19 es donde va el primero de la clasificacion, jLabel20 el segundo y jLabel21 el tercero. Y en los jLabels27...28...coloco las victorias y puntos. Mira la imagen:

[URL="http://www.imaxenes.com/imagen/liga31pi50iy.jpg.html"][/URL]

Y el codigo de ordenadar clasificacion:

Código:
public void ordenar_clasificacion(int contador_uno_puntos, int contador_dos_puntos, int contador_tres_puntos, int contador_uno_victorias, int contador_dos_victorias, int contador_tres_victorias){
        if((contador_uno_victorias > contador_dos_victorias) && (contador_uno_victorias > contador_tres_victorias)){ //GANA 1
            jLabel19.setText(jTextField1.getText());
            jLabel26.setText(contador_uno_puntos+"");
            jLabel29.setText(contador_uno_victorias+"");
            if(contador_dos_victorias > contador_tres_victorias){//segundo el 2 y tercero 3
                jLabel20.setText(jTextField2.getText());
                jLabel27.setText(contador_dos_puntos+"");
                jLabel30.setText(contador_dos_victorias+"");
                jLabel21.setText(jTextField3.getText());
                jLabel28.setText(contador_tres_puntos+"");
                jLabel31.setText(contador_tres_victorias+"");
            }
            else{
                if(contador_tres_victorias>contador_dos_victorias){ //segundo el 3 y tercero el 2
                    jLabel20.setText(jTextField3.getText());
                    jLabel27.setText(contador_tres_puntos+"");
                    jLabel30.setText(contador_tres_victorias+"");
                    jLabel21.setText(jTextField2.getText());
                    jLabel28.setText(contador_dos_puntos+"");
                    jLabel31.setText(contador_dos_victorias+"");
                }
                else{//MIRAMOS PUNTOS PORQUE HAY EMPATE ENTRE LOS 2 Y 3
                    if(contador_dos_puntos>contador_tres_puntos){ //segundo 2 y tercero 3
                        jLabel20.setText(jTextField2.getText());
                        jLabel27.setText(contador_dos_puntos+"");
                        jLabel30.setText(contador_dos_victorias+"");
                        jLabel21.setText(jTextField3.getText());
                        jLabel28.setText(contador_tres_puntos+"");
                        jLabel31.setText(contador_tres_victorias+"");
                    }else{
                        if(contador_tres_puntos>contador_dos_puntos){ //segundo 3 y tercero 2
                            jLabel20.setText(jTextField3.getText());
                            jLabel27.setText(contador_tres_puntos+"");
                            jLabel30.setText(contador_tres_victorias+"");
                            jLabel21.setText(jTextField2.getText());
                            jLabel28.setText(contador_dos_puntos+"");
                            jLabel31.setText(contador_dos_victorias+"");
                        }else{ //empate
                            jLabel20.setText(jTextField2.getText());
                            jLabel27.setText(contador_dos_puntos+"");
                            jLabel30.setText(contador_dos_victorias+"");
                            jLabel21.setText(jTextField3.getText());
                            jLabel28.setText(contador_tres_puntos+"");
                            jLabel31.setText(contador_tres_victorias+"");
                            JOptionPane.showMessageDialog(rootPane, "Hay un empate a victorias y puntos entre 2 participantes.", "EMPATE A VICTORIAS Y PUNTOS", JOptionPane.ERROR_MESSAGE);
                        }
                    }
                }
            }
        }
        else{//AHORA COMPROBADO SEGUNDO CASO,C2>C1YC3
.......
........
.......
......


Imaginate lo largo que es....y eso que aun falta codigo y es solo la liga de 3.
Por eso la liga de 6 me parecia IMPOSIBLE hacerlo asi.

Un saludo y a ver si me puedes ayudar con lo que te digo, el "colocar" a todos, no solo el ganador.

GRACIAS!

Última edición por porito; 25/10/2010 a las 15:41