Foro de elhacker.net

Programación => Java => Mensaje iniciado por: Splaze en 7 Mayo 2015, 12:30 pm



Título: [Juego] Crear TAD en partida
Publicado por: Splaze en 7 Mayo 2015, 12:30 pm
Hola,

Hace unos días creé otro tema sobre este mismo proyecto que me está sacando de quicio. El proyecto consiste en hacer un juego de dominó con estos TADs:

Con los consejos que recibí en el otro tema ya tengo la clase que representa una ficha y la clase que representa el montón de fichas (las crea y reparte 7 a cada uno de los dos jugadores)

Clase Ficha

Código
  1. public class Ficha {      
  2.  
  3.    private int num1;
  4.    private int num2;
  5.  
  6.    public Ficha(int num1, int num2) {   // Abre constructor
  7.        this.num1 = num1;
  8.        this.num2 = num2;
  9.    }
  10.  
  11.    public int getNum1() {
  12.        return num1;
  13.    }
  14.  
  15.    public int getNum2() {
  16.        return num2;
  17.    }  
  18.  
  19.    Ficha ficha1 = new Ficha(0, 0);
  20.    Ficha ficha2 = new Ficha(0, 1);
  21.    Ficha ficha3 = new Ficha(0, 2);
  22.    Ficha ficha4 = new Ficha(0, 3);
  23.    Ficha ficha5 = new Ficha(0, 4);
  24.    Ficha ficha6 = new Ficha(0, 5);
  25.    Ficha ficha7 = new Ficha(0, 6);
  26.    Ficha ficha8 = new Ficha(1, 1);
  27.    Ficha ficha9 = new Ficha(1, 2);
  28.    Ficha ficha10 = new Ficha(1, 3);
  29.    Ficha ficha11 = new Ficha(1, 4);
  30.    Ficha ficha12 = new Ficha(1, 5);
  31.    Ficha ficha13 = new Ficha(1, 6);
  32.    Ficha ficha14 = new Ficha(2, 2);
  33.    Ficha ficha15 = new Ficha(2, 3);
  34.    Ficha ficha16 = new Ficha(2, 4);
  35.    Ficha ficha17 = new Ficha(2, 5);
  36.    Ficha ficha18 = new Ficha(2, 6);
  37.    Ficha ficha19 = new Ficha(3, 3);
  38.    Ficha ficha20 = new Ficha(3, 4);
  39.    Ficha ficha21 = new Ficha(3, 5);
  40.    Ficha ficha22 = new Ficha(3, 6);
  41.    Ficha ficha23 = new Ficha(4, 4);
  42.    Ficha ficha24 = new Ficha(4, 5);
  43.    Ficha ficha25 = new Ficha(4, 6);
  44.    Ficha ficha26 = new Ficha(5, 5);
  45.    Ficha ficha27 = new Ficha(5, 6);
  46.    Ficha ficha28 = new Ficha(6, 6);
  47.  
  48.    public String toString() {   // Abre metodo toString
  49.        return "["+num1+"|"+num2+"]";
  50.    }
  51.  
  52. }
  53.  

Clase MontonFichas

Código
  1. public class MontonFichas {
  2.  
  3. private List<Ficha> fichas;
  4.  
  5.  public MontonFichas(){
  6.     Ficha ficha;
  7.     for(int i=0; i<7; i++){
  8.        for(int j=0; j<7; j++){
  9.            ficha = new Ficha(i, j);
  10.            fichas.add(ficha);
  11.        }
  12.     }
  13.  }
  14.  
  15.  public void repartirFichas(Jugador j1, Jugador j2){
  16.     repartir(j1);
  17.     repartir(j2);
  18.  }
  19.  
  20.  private void repartir(Jugador j1){
  21.     int random = 0;
  22.     Ficha fichaAleatoria = null;
  23.     for(int i=0; i<7; i++){
  24.        random = new Random().nextInt(getFichasRestantes());
  25.        fichaAleatoria = this.fichas.get(random);        
  26.        j1.darFicha(fichaAleatoria);
  27.        this.fichas.remove(random);
  28.     }
  29.  }
  30.  
  31.  private int getFichasRestantes(){
  32.     return this.fichas.length();
  33.  }
  34.  
  35. }
  36.  


Ahora me toca crear un objeto para cada jugador (serían 2 jugadores humanos) pero no encuentro forma, a ver si alguien me puede ayudar  :-(


Título: Re: [Juego] Crear TAD en partida
Publicado por: PabloPbl en 7 Mayo 2015, 16:51 pm
Lo que puedes hacer es una clase llamada Jugador, y allí meterle todos los atributos y métodos necesarios.

Y desde tu clase principal, crear 2 objetos de la clase "Jugador" e interactuar con ellos.


Título: Re: [Juego] Crear TAD en partida
Publicado por: Splaze en 7 Mayo 2015, 20:08 pm
¿Pero qué datos atributos podría ponerle? Estoy más perdido que un pulpo en un garaje  :o


Título: Re: [Juego] Crear TAD en partida
Publicado por: PabloPbl en 7 Mayo 2015, 20:19 pm
Jaja, pues no me acuerdo como se juega al domino, pero puedes ponerle un atributo:

Ficha actual y bueno cosas así.

Y métodos como
getFicha()
setFicha()

Saludos!