¿Cómo poner la condición del if dentro de un método? JAVA POO

publicado por: Anonymous

Buenas tengo que crear este programa :

Crea la clase PartidoDeTenis que contenga el resultado de los 5 set de cada jugador.

Crear
los métodos que devuelva el jugador que gano el partido. Considera los resultados en base
a las reglas del citado juego.

Mi problema es que no se como comparar los goles de ambos jugadores en los distintos set , intente poner un if y que su condicion sea jugador1.setUno()>jugador2.setUno() y en caso contrario gana el jugador2.Pero en eclipse me marca error y me pone :

introducir la descripción de la imagen aquí

También lo que hice fue poner un contador llamado jugador1++ dentro el if y jugador2++ dentro del else , as mientras gana el jugador1 o ´jugador2 se va acumulando la cantidad de partidos ganados , pero no me funciona la condición del if.

A continuación les dejo el código :

public class PartidoDeTenis {

    private int jugador1;
    private int jugador2;

    PartidoDeTenis( ){
        this.jugador1= jugador1;
        this.jugador2= jugador2;
    }

    public int setUno(int goles) {

        if(jugador1.setUno()>jugador2.setUno()) {

            jugador1++;
        }
        else {
            jugador2++;
        }
        return goles;

    }

    public int setDos(int goles) {

        if(jugador1>jugador2) {

            jugador1++;

        }
        else {
            jugador2++;
        }

        return goles;
    }

    public int setTres(int goles) {


        if(jugador1>jugador2) {

            jugador1++;

        }
        else {

            jugador2++;
        }
        return goles;
    }

    public int setCuatro(int goles) {

        if(jugador1>jugador2) {

            jugador1++;

        }
        else {

            jugador2++;
        }
        return goles;

    }

    public int setCinco(int goles ) {

        if(jugador1>jugador2) {

            jugador1++;

        }
        else {

            jugador2++;
        }
        return goles;


    }

    public void ganadorDelPartido() {

        if(jugador1>jugador2) {

            System.out.println("El Ganador es el jugador 1.");

        }
        else {
            System.out.println("El Ganador es el jugador 2.");
        }
    }
}

public class PruebaTenis {

    public static void main(String[] args) {
        PartidoDeTenis jugador1 = new PartidoDeTenis();
        PartidoDeTenis jugador2 = new PartidoDeTenis();

        jugador1.setUno(1);
        jugador2.setUno(5);
        jugador1.setDos(2);
        jugador2.setDos(4);
        jugador1.setTres(0);
        jugador2.setTres(3);
        jugador1.setCuatro(0);
        jugador2.setCuatro(2);
        jugador1.setCinco(6);
        jugador2.setCinco(1);  
    }
}

solución

No puedes llamar a un método desde dentro del mismo, a no ser que quieras usar recursividad y este no sería el caso. Si estas interesando en programar usando un paradigma orientado a objetos te recomiendo encarecidamente que separes los partidos de los jugadores puesto que son objetos de naturaleza claramente diferente, he codificado una pequeña solución al problema que has propuesto, también decirte que hay muchas otras soluciones y que si no quieres crear una clase jugador al menos necesitaras 2 variables para contar los sets de cada jugador y pasar a los 2 jugadores por parámetros a cada set, en vez de comparar los sets, hazlo con los 2 jugadores pasados por parámetro y según el caso aumenta una de las variables set en 1, saludos!!! , y si tienes cualquier otra pregunta no dudes en postear 🙂

public class jugador {

String nombre;
int setGanados;

public jugador(String nombre, int puntos){
    this.nombre = nombre;
    this.setGanados = puntos;
}
public String getNombre() {
    return nombre;
}
public void setNombre(String nombre) {
    this.nombre = nombre;
}
public int getSetGanados() {
    return setGanados;
}
public void setSetGanados(int puntos) {
    this.setGanados = puntos;
}

}

public class PartidoDeTenis {

private jugador jugador1;
private jugador jugador2;

PartidoDeTenis(jugador jugador1, jugador jugador2) {
    this.jugador1 = jugador1;
    this.jugador2 = jugador2;
}

public String setUno(int puntosjug1, int puntosjug2) {

    String frase;
    if (puntosjug1 > puntosjug2) {
        jugador1.setSetGanados(jugador1.getSetGanados()+1);
        frase = "Set para jugador 1, lleva " + jugador1.getSetGanados() + " ganados";
    } else {
        jugador2.setSetGanados(jugador2.getSetGanados()+1);
        frase = "Set para jugador 2, lleva " + jugador2.getSetGanados() + " ganados";
    }
    return frase;
}

public class main {

public static void main(String[] args) {

    jugador jugador1 = new jugador("paco", 0);
    jugador jugador2 = new jugador("luis", 0);
    PartidoDeTenis partido = new PartidoDeTenis(jugador1, jugador2);

    System.out.println(partido.setUno(2,  1));
    System.out.println(partido.setUno(3,  4));
    System.out.println(partido.setUno(3,  4));


}

}

Respondido por: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *