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

Gracias por la aportacion GreenEyed pero me parece que aun me queda mucho por aprender porque no te he entendido

He probado el codigo que me puso RyoAkiyama hace tiempo, pero para una liga de 4 y me funciona a la perfeccion pero tiene una pega.

Si en la liga solo ha habido un partido, y han quedado 10 a 10, el contador de victorias de todos es 0 y el de puntos, estan empatados esos 2 equipos.
Entonces, esta claro que la liga ahi no va a terminar, pero tendria que mostrar un mensaje de EMPATE. Como hago eso en mi codigo?

Porque tal y como lo tengo me pone el ganador, y en este caso me dice que es el equipo1 pero porque maximo=0 al principio y me muestra maximo+1 por defecto, pero en verdad hay empate a victorias(0) y puntos(10)

Código:
public void metodo2(){
        int candado = 0;//DETERMINA CUAL ES EL MAYOR
        int maximo = 0; //SE GUARDA EL MAYOR
        for(int x =0; x<4;x++){//for x=0 a 6 comparamos equipo con equipo
            candado=0;
            for(int y=0;y<4;y++){
                //No puede comparar con si mismo
                if(x!=y){
                    // si el equipo x tiene mas victorias que y
                    if(victoriasdetodos.get(x)>victoriasdetodos.get(y)){
                    //si esta variable llega a 3, significa que el equipo x les gano a todos por lo tanto es el mayor
                        candado++;
                    }else{
                        if(victoriasdetodos.get(x)==victoriasdetodos.get(y)){
                            //si los puntos de x son mayores que y
                            if(puntosdetodos.get(x)>puntosdetodos.get(y)){
                                candado++;
                            }else{//si no rompemos bucle de , por que no tiene caso seguir comparando ya que es menor
                                y=5;
                            }
                        }else{
                            y=5;
                        }
                    }
                }
            }
//significa que el equipo x es mas grande que todos rompemos bucle con x=7, 
//por que al ser el mayor, ya nadie le gana
 //y almacenamos el equipo en la variable mayor, pero recordamo que en los
//arreglos empezamos por 0, asi que para imprimer que equipo gano, seria
//conveniente escribir mayor +1, como se muestra a continuacion
                if(candado==3){
                    maximo = x;
                    x=5;
                }
            }
            
        System.out.println(maximo+1);
    }

Luego, para el problema de ORDENAR la clasificacion, habia pensado en que cuando tenga un GANADOR en la liga, guardarlo en el jtextfield de la posicion 1 de la liga, Y ELIMINAR ESE ELEMENTO DEL ARRAY y volver a ejecutar ese metodo pero en vez de con 4, con 3, y el que gane sera el segundo...y asi sucesivamente.

El problema es que puede aver un empate entre los 2 primeros....o un empate entre el segundo y tercero....y cuando digo empate digo empate a VICTORIAS Y PUNTOS....

Y ahi ya no se como controlarlo...