elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Estamos en la red social de Mastodon


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  [Juego] Crear fichas y repartir
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: [Juego] Crear fichas y repartir  (Leído 8,962 veces)
Splaze

Desconectado Desconectado

Mensajes: 9


Ver Perfil
[Juego] Crear fichas y repartir
« en: 30 Abril 2015, 21:03 pm »

Hola,

Tengo que crear un juego de dominó y el primer paso es generar las fichas y repartir 7 fichas a cada jugador (habría 2 jugadores). Las fichas en pantalla se representarían así:

[3|5] [1|6]

Hasta ahora tengo esto:

Código:
public class Ficha {      
    
    private int num1;
    private int num2;
    
    public Ficha(int num1, int num2) {   // Abre constructor
        this.num1 = num1;
        this.num2 = num2;
    }

    public int getNum1() {
        return num1;
    }
 
    public int getNum2() {
        return num2;
    }  
    
    Ficha ficha1 = new Ficha(0, 0);
    Ficha ficha2 = new Ficha(0, 1);
    Ficha ficha3 = new Ficha(0, 2);
    Ficha ficha4 = new Ficha(0, 3);
    Ficha ficha5 = new Ficha(0, 4);
    Ficha ficha6 = new Ficha(0, 5);
    Ficha ficha7 = new Ficha(0, 6);
    Ficha ficha8 = new Ficha(1, 1);
    Ficha ficha9 = new Ficha(1, 2);
    Ficha ficha10 = new Ficha(1, 3);
    Ficha ficha11 = new Ficha(1, 4);
    Ficha ficha12 = new Ficha(1, 5);
    Ficha ficha13 = new Ficha(1, 6);
    Ficha ficha14 = new Ficha(2, 2);
    Ficha ficha15 = new Ficha(2, 3);
    Ficha ficha16 = new Ficha(2, 4);
    Ficha ficha17 = new Ficha(2, 5);
    Ficha ficha18 = new Ficha(2, 6);
    Ficha ficha19 = new Ficha(3, 3);
    Ficha ficha20 = new Ficha(3, 4);
    Ficha ficha21 = new Ficha(3, 5);
    Ficha ficha22 = new Ficha(3, 6);
    Ficha ficha23 = new Ficha(4, 4);
    Ficha ficha24 = new Ficha(4, 5);
    Ficha ficha25 = new Ficha(4, 6);
    Ficha ficha26 = new Ficha(5, 5);
    Ficha ficha27 = new Ficha(5, 6);
    Ficha ficha28 = new Ficha(6, 6);
    
    public String toString() {   // Abre metodo toString
        return "["+num1+"|"+num2+"]";
    }

Agradecería si me dijerais si esta parte que llevo hecha es correcta. Si esto está bien lo que me queda es la parte de repartir las fichas aleatoriamente, pero no tengo ni idea de cómo hacerlo.

He probado creando una lista y usar Collections.shuffle para "barajarlas" pero me da error:

Código:
List<Ficha> fichas = new ArrayList<>();
    
    fichas.add(ficha1);
    fichas.add(ficha2);
    fichas.add(ficha3);
    fichas.add(ficha4);
    ...
    fichas.add(ficha28);
    
    Collections.shuffle(fichas);


Agradecería algo de ayuda porque estoy muy verde en el tema.

Un saludo!


« Última modificación: 7 Mayo 2015, 11:59 am por Splaze » En línea

PabloPbl

Desconectado Desconectado

Mensajes: 188


Ver Perfil
Re: [Juego] Crear fichas y repartir
« Respuesta #1 en: 30 Abril 2015, 21:19 pm »

¿Que error tienes o que te muestra el compilador?
Muestralo para poder ayudarte.


En línea

Splaze

Desconectado Desconectado

Mensajes: 9


Ver Perfil
Re: [Juego] Crear fichas y repartir
« Respuesta #2 en: 30 Abril 2015, 21:28 pm »

Con el arraylist me sale esto

Código:
http://i.gyazo.com/334179bf861b1eb2bd540a4b9c2fc4cc.png

Y con la línea de Collections esto:

Código:
http://i.gyazo.com/6ca0d96f4bc82083495858b7177db603.png
En línea

PabloPbl

Desconectado Desconectado

Mensajes: 188


Ver Perfil
Re: [Juego] Crear fichas y repartir
« Respuesta #3 en: 30 Abril 2015, 21:35 pm »

En la linea del ArrayList prueba con esta linea:
Código
  1. ArrayList<Ficha> fichas = new ArrayList<Ficha>();
En línea

Splaze

Desconectado Desconectado

Mensajes: 9


Ver Perfil
Re: [Juego] Crear fichas y repartir
« Respuesta #4 en: 30 Abril 2015, 21:37 pm »

En la linea del ArrayList prueba con esta linea:
Código
  1. ArrayList<Ficha> fichas = new ArrayList<Ficha>();

El problema en ambos casos persiste :S
En línea

PabloPbl

Desconectado Desconectado

Mensajes: 188


Ver Perfil
Re: [Juego] Crear fichas y repartir
« Respuesta #5 en: 30 Abril 2015, 22:02 pm »

En que parte de tu código pones esto, en una clase aparte?
Código
  1. List<Ficha> fichas = new ArrayList<>();
  2.  
  3.    fichas.add(ficha1);
  4.    fichas.add(ficha2);
  5.    fichas.add(ficha3);
  6.    fichas.add(ficha4);
  7.    ...
  8.    fichas.add(ficha28);
  9.  
  10.    Collections.shuffle(fichas);
  11.  

Te has fijado que todas las clases estén en el mismo pakcage?
En línea

Splaze

Desconectado Desconectado

Mensajes: 9


Ver Perfil
Re: [Juego] Crear fichas y repartir
« Respuesta #6 en: 30 Abril 2015, 22:21 pm »

En que parte de tu código pones esto, en una clase aparte?
Código
  1. List<Ficha> fichas = new ArrayList<>();
  2.  
  3.    fichas.add(ficha1);
  4.    fichas.add(ficha2);
  5.    fichas.add(ficha3);
  6.    fichas.add(ficha4);
  7.    ...
  8.    fichas.add(ficha28);
  9.  
  10.    Collections.shuffle(fichas);
  11.  

Te has fijado que todas las clases estén en el mismo pakcage?

Todo el código que he puesto está en la misma clase
En línea

PabloPbl

Desconectado Desconectado

Mensajes: 188


Ver Perfil
Re: [Juego] Crear fichas y repartir
« Respuesta #7 en: 1 Mayo 2015, 04:41 am »

Perdón por demorar tanto, no estaba en casa.

Bueno volviendo al tema, yo te recomiendo que tu clase Ficha la pongas en otra clase por aparte, pues estuve probando tu código y lo he cambiado un poco, y me ha quedado así:

Código
  1. import java.util.ArrayList;
  2. import java.util.Collections;
  3.  
  4. public class Main {
  5.    Ficha ficha1 = new Ficha(0, 0);
  6.    Ficha ficha2 = new Ficha(0, 1);
  7.    Ficha ficha3 = new Ficha(0, 2);
  8.    Ficha ficha4 = new Ficha(0, 3);
  9.    Ficha ficha5 = new Ficha(0, 4);
  10.    Ficha ficha6 = new Ficha(0, 5);
  11.    Ficha ficha7 = new Ficha(0, 6);
  12.    Ficha ficha8 = new Ficha(1, 1);
  13.    Ficha ficha9 = new Ficha(1, 2);
  14.    Ficha ficha10 = new Ficha(1, 3);
  15.    Ficha ficha11 = new Ficha(1, 4);
  16.    Ficha ficha12 = new Ficha(1, 5);
  17.    Ficha ficha13 = new Ficha(1, 6);
  18.    Ficha ficha14 = new Ficha(2, 2);
  19.    Ficha ficha15 = new Ficha(2, 3);
  20.    Ficha ficha16 = new Ficha(2, 4);
  21.    Ficha ficha17 = new Ficha(2, 5);
  22.    Ficha ficha18 = new Ficha(2, 6);
  23.    Ficha ficha19 = new Ficha(3, 3);
  24.    Ficha ficha20 = new Ficha(3, 4);
  25.    Ficha ficha21 = new Ficha(3, 5);
  26.    Ficha ficha22 = new Ficha(3, 6);
  27.    Ficha ficha23 = new Ficha(4, 4);
  28.    Ficha ficha24 = new Ficha(4, 5);
  29.    Ficha ficha25 = new Ficha(4, 6);
  30.    Ficha ficha26 = new Ficha(5, 5);
  31.    Ficha ficha27 = new Ficha(5, 6);
  32.    Ficha ficha28 = new Ficha(6, 6);
  33.  
  34.    public void barajar() {
  35.        ArrayList<Ficha> fichas = new ArrayList<>();
  36.  
  37.        fichas.add(ficha1);
  38.        fichas.add(ficha2);
  39.        fichas.add(ficha3);
  40.        fichas.add(ficha4);
  41.        //Aca las demas fichas
  42.        fichas.add(ficha28);
  43.  
  44.        Collections.shuffle(fichas);
  45.  
  46.        for(int i = 0; i < fichas.size(); i++) {
  47.            System.out.println(fichas);
  48.        }
  49.    }
  50.  
  51.    public static void main(String args[]) {
  52.        Main main = new Main();
  53.        main.barajar();
  54.    }
  55. }
  56.  

Y acá la clase Ficha por separado:

Código
  1.  
  2. public class Ficha {
  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.    public String toString() {   // Abre metodo toString
  20.        return "["+num1+"|"+num2+"]";
  21.    }
  22. }
  23.  
  24.  

Te recomiendo  que organices y te acostumbres a hacer tu código mas orientado a objetos.
Espero te sirva para que mas o menos te des una idea de como hacer el juego.

Un saludo!
En línea

Splaze

Desconectado Desconectado

Mensajes: 9


Ver Perfil
Re: [Juego] Crear fichas y repartir
« Respuesta #8 en: 1 Mayo 2015, 13:01 pm »

Perdón por demorar tanto, no estaba en casa.

Bueno volviendo al tema, yo te recomiendo que tu clase Ficha la pongas en otra clase por aparte, pues estuve probando tu código y lo he cambiado un poco, y me ha quedado así:

Código
  1.  
  2.  

Y acá la clase Ficha por separado:

Código
  1.  
  2.  

Te recomiendo  que organices y te acostumbres a hacer tu código mas orientado a objetos.
Espero te sirva para que mas o menos te des una idea de como hacer el juego.

Un saludo!

Muchísimas gracias por la ayuda, esto es lo que tengo ahora ahora entonces:


Clase PracticaDomino

Código
  1. import java.util.*;
  2.  
  3. public class PracticaDomino {
  4.  
  5.    public static void main(String[] args) {
  6.  
  7.        MontonFichas main = new MontonFichas();
  8.        main.barajar();              
  9.  
  10.    }
  11.  
  12. }
  13.  


Clase Ficha:

Código
  1. import java.util.*;
  2.  
  3. public class Ficha {      
  4.  
  5.    private int num1;
  6.    private int num2;
  7.  
  8.    public Ficha(int num1, int num2) {   // Abre constructor
  9.        this.num1 = num1;
  10.        this.num2 = num2;
  11.    }
  12.  
  13.    public int getNum1() {
  14.        return num1;
  15.    }
  16.  
  17.    public int getNum2() {
  18.        return num2;
  19.    }  
  20.  
  21.    public String toString() {   // Abre metodo toString
  22.        return "["+num1+"|"+num2+"]";
  23.    }
  24.  
  25. }
  26.  

Clase MontonFichas:

Código
  1. import java.util.ArrayList;
  2. import java.util.Collections;
  3.  
  4. public class MontonFichas {
  5.  
  6.    Ficha ficha1 = new Ficha(0, 0);
  7.    Ficha ficha2 = new Ficha(0, 1);
  8.    Ficha ficha3 = new Ficha(0, 2);
  9.    Ficha ficha4 = new Ficha(0, 3);
  10.    Ficha ficha5 = new Ficha(0, 4);
  11.    Ficha ficha6 = new Ficha(0, 5);
  12.    Ficha ficha7 = new Ficha(0, 6);
  13.    Ficha ficha8 = new Ficha(1, 1);
  14.    Ficha ficha9 = new Ficha(1, 2);
  15.    Ficha ficha10 = new Ficha(1, 3);
  16.    Ficha ficha11 = new Ficha(1, 4);
  17.    Ficha ficha12 = new Ficha(1, 5);
  18.    Ficha ficha13 = new Ficha(1, 6);
  19.    Ficha ficha14 = new Ficha(2, 2);
  20.    Ficha ficha15 = new Ficha(2, 3);
  21.    Ficha ficha16 = new Ficha(2, 4);
  22.    Ficha ficha17 = new Ficha(2, 5);
  23.    Ficha ficha18 = new Ficha(2, 6);
  24.    Ficha ficha19 = new Ficha(3, 3);
  25.    Ficha ficha20 = new Ficha(3, 4);
  26.    Ficha ficha21 = new Ficha(3, 5);
  27.    Ficha ficha22 = new Ficha(3, 6);
  28.    Ficha ficha23 = new Ficha(4, 4);
  29.    Ficha ficha24 = new Ficha(4, 5);
  30.    Ficha ficha25 = new Ficha(4, 6);
  31.    Ficha ficha26 = new Ficha(5, 5);
  32.    Ficha ficha27 = new Ficha(5, 6);
  33.    Ficha ficha28 = new Ficha(6, 6);
  34.  
  35.    public void barajar() {
  36.        ArrayList<Ficha> fichas = new ArrayList<>();
  37.  
  38.        fichas.add(ficha1);
  39.        fichas.add(ficha2);
  40.        fichas.add(ficha3);
  41.        fichas.add(ficha4);
  42.        fichas.add(ficha5);
  43.        fichas.add(ficha6);
  44.        fichas.add(ficha7);
  45.        fichas.add(ficha8);
  46.        fichas.add(ficha9);
  47.        fichas.add(ficha10);
  48.        fichas.add(ficha11);
  49.        fichas.add(ficha12);
  50.        fichas.add(ficha13);
  51.        fichas.add(ficha14);
  52.        fichas.add(ficha15);
  53.        fichas.add(ficha16);
  54.        fichas.add(ficha17);
  55.        fichas.add(ficha18);
  56.        fichas.add(ficha19);
  57.        fichas.add(ficha20);
  58.        fichas.add(ficha21);
  59.        fichas.add(ficha22);
  60.        fichas.add(ficha23);
  61.        fichas.add(ficha24);
  62.        fichas.add(ficha25);
  63.        fichas.add(ficha26);
  64.        fichas.add(ficha27);
  65.        fichas.add(ficha28);
  66.  
  67.        Collections.shuffle(fichas);  
  68.  
  69.        for(int i = 0; i < fichas.size(); i++) {
  70.            System.out.println(fichas);
  71.        }
  72.    }
  73.  
  74. }
  75.  

Lo que no entiendo es para qué es el último for que me has puesto, me refiero a este

Código:
for(int i = 0; i < fichas.size(); i++) {
            System.out.println(fichas);
        }
En línea

PabloPbl

Desconectado Desconectado

Mensajes: 188


Ver Perfil
Re: [Juego] Crear fichas y repartir
« Respuesta #9 en: 1 Mayo 2015, 17:23 pm »

Solo era para corroborar que de verdad me mezclaba las fichas del ArrayList, si quieres borralo.

Un saludo.
En línea

Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Fichas de presentación
PHP
eduardosdt 1 1,776 Último mensaje 2 Octubre 2007, 20:11 pm
por дٳŦ٭
Gestión de fichas deportivas
Software
omar2886 1 3,214 Último mensaje 7 Mayo 2010, 21:26 pm
por omar2886
Excel: FIchas y resumen
Software
gatomadrid 1 4,039 Último mensaje 2 Noviembre 2010, 12:44 pm
por gatomadrid
Fichas de producto con varias imágenes
Desarrollo Web
Linton 4 2,316 Último mensaje 27 Febrero 2014, 13:16 pm
por Linton
Fichas RFID
Hardware
Flenwd 2 2,026 Último mensaje 25 Marzo 2019, 02:29 am
por srWhiteSkull
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines