Foro de elhacker.net

Programación => Java => Mensaje iniciado por: calun en 3 Mayo 2015, 10:35 am



Título: Juego de cartas
Publicado por: calun en 3 Mayo 2015, 10:35 am
Hola, estoy haciendo un juego de cartas para un trabajo de clase y estoy algo perdido con los metodos que tengo que implantar, a ver si podeis echarme un cable, por que me estoy volviendo loco.

Bueno en un metodo en la clase principal tengo que analizar las cartas de los jugadores, y el que tenga el seis de corazones inicia la partida.
para esto tengo ya los metodos isSixHearts() en la clase card que me dice si una carta es el 6 de corazones, y getCard() en la clase player  que devuelve las cartas que tiene el jugador en la mano.

He pensado en hacer un if que tenga como condicion que la carta sea isSixHearts() y un for para que busque la carta en el metodo getCards() pero no se muy bien como implantarlo para que ademas una vez encontrada la carta este Player empiece la partida.

Bueno, ire poniendo mas cosas a ver si alguien puede ayudarme.

Gracias y un Saludo a todos.


Título: Re: Juego de cartas
Publicado por: DarK_FirefoX en 3 Mayo 2015, 16:16 pm
Deberías poner un poco del código para saber como están estructuradas tus clases.

Salu2s

PD: A simple vista deberías tener una clase Game que debería ser la encargada de controlar quien empieza el juego, entre otras muchas cosas.


Título: Re: Juego de cartas
Publicado por: calun en 3 Mayo 2015, 16:39 pm
Tenga una clase Turn:

public class TableTurn<T>  extends Actor implements Turn<T>
{
        private int numOfTurn;
        private int turn;
        private T[] players;
       
        /**
         * Constructor del controlador de turnos
         * @param los jugadores
         * @param un entero entre el rango de los jugadores
         */
        public TableTurn(T[] players){
            this.players = players;
            this.turn = 0;
            numOfTurn = 0;
        }

        /**
         * Constructor del controlador de turnos
         * @param los jugadores
         * @param un entero entre el rango de los jugadores
         */
        public TableTurn(T[] players, T p){
            this.players = players;
            this.turn = getTurn(players, p);
            numOfTurn = 0;
        }
       
        private int getTurn(T[] player, T p){
            boolean enc = false;
            int i = 0;
            while ((i < players.length) && !enc){
                if (players == p)
                    enc = true;
                else
                    i++;
            }
            return i;
        }
       
        public void clear(){
            turn = 0;
            numOfTurn = 0;
        }
       
        public int getNumOfTurn(){
            return numOfTurn;
        }
       
        public int getTurn(){
            return turn + 1;
        }
       
        public T next(){
            numOfTurn++;
            T player = players[turn];
            turn = (turn + 1) % players.length;
            return player;
        }
       
        public boolean isMyturn(T player){
            return players[turn] == player;
        }
       

   
}


Título: Re: Juego de cartas
Publicado por: calun en 3 Mayo 2015, 16:43 pm
Este es el metodo dentro de la clase Card, que busca el 6 de corazones.

public boolean isSixHearts(){
       
       if (getValue()==Value.SIX && getSuit()==Suit.HEARTS){
            return true;
       }
       else{
            return false;
        }
       
   }

Y getCards() de la clase Player.

 public ArrayList<Card> getCards(){
        return cards;
    }


Título: Re: Juego de cartas
Publicado por: DarK_FirefoX en 4 Mayo 2015, 13:48 pm
Me parece que una idea sería en esa clase TableTurn crear un método StartGame en cual se debe encargar de por cada jugador en el array players verificar si ese jugador tiene el seis de corazones y entonces a la variable turn asignarle el valor de ese player y a partir de ahí comenzar el juego.

Salu2s


Título: Re: Juego de cartas
Publicado por: calun en 5 Mayo 2015, 10:08 am
Gracias por contestar.

Tengo un metodo seTurn(), en la clase principal, en el que esta tambien whoisFirst().
seTurn determina quien empieza y establece el turno.

Este sera el sTartGame que me dices.


Título: Re: Juego de cartas
Publicado por: DarK_FirefoX en 5 Mayo 2015, 18:57 pm
Entonces... :huh: ¿Solucionado?

Deberías explicar que hiciste y como funciona para que otros se puedan beneficiar en caso de que tengan la misma duda.

Por cierto, que se me olvidó mencionártelo anteriormente. Utiliza las etiquetas GeSHi cuando vayas a publicar código!

Saludos