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

 

 


Tema destacado: Curso de javascript por TickTack


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  Código para barajar cartas en Java.
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Código para barajar cartas en Java.  (Leído 8,489 veces)
JesusIII

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Código para barajar cartas en Java.
« en: 16 Noviembre 2015, 23:32 pm »

Hola, estoy aprendiendo java y es la primera vez que escribo en el foro, espero que me podáis ayudar. La cosa es que tengo que hacer un juego llamado "7 y medio". Lo que me preocupa es el barajado.
Tengo un error (que marcaré con rojo). Según el profesor tengo que crear una clase Carta con dos atributos (cara y palo). No lo acabo de entender bien. Aquí dejo mi código. Gracias y si se puede mejorar decidmelo.

package juego_7ymedio;
import java.util.Random;
import java.util.Scanner;
import java.util.ArrayList;
import java.util.Collections;

public class baraja {
   

   private final int ncartas=52;
   
   
   
   public void barajar_cartas(){
      
      //Elegimos el tipo de mazo
      String paquete="0";
      Scanner teclado2 = new Scanner(System.in);
      System.out.println("Elige el tipo de baraja");
      paquete=teclado2.nextLine();
      String cara[];
      String palo[];
      
      switch(paquete){
      
      case "E":
         //elegimos la baraja española
         cara=new String[]{"Uno", "Dos", "Tres", "Cuatro","Cinco","Seis","Siete","Ocho","Nueve","Diez","Once","Doce"};
         palo=new String[] {"Oros","Espadas","Copas","Bastos"};
         break;
         
      case "F":
         //elegimos la baraja francesa
         cara=new String[] {"As", "Dos", "Tres", "Cuatro","Cinco","Seis","Siete","Ocho","Nueve","Jota","Caballo","Rey"};
         palo=new String[] {"Picas","Rombos","Treboles","Corazones"};
         
         break;
         
      default:
         System.out.println("No has elegido la correcta, vuelve a elegir");
         break;
      }
      //creamos el arraylist donde irán las cartas y las meteremos
      ArrayList<baraja> arraycartas= new ArrayList<baraja>();
      for(int i=0;i<=cara.length;i++){
         for(int j=0;j<=palo.length;j++){
            arraycartas.add(new Carta(cara,palo[j]));
         }
            
   
         }
      //Ahora barajamos
      Collections.shuffle(arraycartas);
      //sacamos por pantalla a modo de prueba
      for(int k=0;k<=ncartas;k++){
         arraycartas.get(k);
            
               System.out.println("la carta que ha salido es:" +arraycartas.get(k));
      
            }   
      }
      
   }




En línea

DarK_FirefoX


Desconectado Desconectado

Mensajes: 1.263


Be the change you wanna see in te world


Ver Perfil
Re: Código para barajar cartas en Java.
« Respuesta #1 en: 17 Noviembre 2015, 20:37 pm »

Pues como te dice tu profesor, deberías orientar a objetos la solución de tu problema (Programación Orientada a Objetos (POO/OOP)).

En tal caso debes crear una clase Carta, que tenga dos propiedades, una que identifique el Palo y otra el Número (o cara, como sea que le llames). La manera de identificarla será escogida por ti, puedes hacerlo con Strings o utilizando Enum (investiga sobre este último).

Luego te será más facil crear la clase Baraja, a la cual creo que deberías cambiarle la lógica.

Primero, deberías tener un constructor, dentro del cual es donde escoges que tipo de baraja utilizar y utilizar campos para asignarle y guardar los valores de las cartas. Para guardar estos paquetes puedes crear clases separadas también, una clase que se llame BarajaFrancesa y otra BarajaEspañola, que ya tenga definido los valores de las caras y los palos.

Ahora, como tal, el método barajar_cartas(); solo se ocupara de hacer el ArrayList que sea aleatorio, de la manera que lo hagas.

Otra cosa, siempre trata de mantener la lógica, separada de la interfaz gráfica o de la consola (entrada de datos), esto hará que tu diseño de clases pueda ser rehusable y/o extendible.

Cualquier duda pregunta. Ahh, y utiliza las etiquetas GeSHi para publicar código.

Salu2s


En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Firma de Codigo para desarrollo en ,NET y Java
.NET (C#, VB.NET, ASP)
JOEL1a2z 2 3,086 Último mensaje 15 Febrero 2008, 01:24 am
por elmaro
Codigo Para para un chat BlueTooth en Java
Java
Edumanmx 1 4,592 Último mensaje 17 Septiembre 2008, 19:30 pm
por Sk9ITk5Z
pregunta ejercicio java cartas « 1 2 »
Java
casidus 12 12,573 Último mensaje 23 Marzo 2012, 02:41 am
por ohuilapan
Baraja de cartas en java
Java
d!lan 3 10,599 Último mensaje 14 Julio 2013, 17:37 pm
por opoveda
AYUDA CON CODIGO DE JUEGO DE CARTAS
Ejercicios
kasidy 2 8,203 Último mensaje 26 Noviembre 2013, 16:00 pm
por kasidy
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines