Barajar y Entregar Cartas

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 5

Clase Carta

/*

* To change this license header, choose License Headers in Project Properties.

* To change this template file, choose Tools | Templates

* and open the template in the editor.

*/

package pruebapaquetedecartas;

/**

* @author Familia Galicia

*/

public class Carta {

private String cara; //cara de las cartas (As, Dos.....)

private String palo; // (corazones, diamantes, treboles etc)

//constructor de los argumentos que inicializa la cara y el palo de la carta

public Carta(String caraCarta, String paloCarta)

cara = caraCarta; //inicializa la cara de la Carta

palo = paloCarta; // inicializa el palo de la carta

}//fin al constructor de carta de 2 argumetos

//devuelve representación String de carta

public String toString()

return cara+ " de " + palo;

}//fin del método toString


}//fin de clase Carta

Clase PaqueteDeCartas

/*

* To change this license header, choose License Headers in Project Properties.

* To change this template file, choose Tools | Templates

* and open the template in the editor.

*/

package pruebapaquetedecartas;

/**

* @author Familia Galicia

*/

import java.util.Random;

public class PaqueteDeCartas {

private Carta[] paquete;//arreglo de objetos Carta

private int cartaActual;//subindice de la siguiente carta a repartir(0 a 51)

private static final int NUMERO_DE_CARTAS = 52;//número constante de Cartas

//generador de números aleatorios

private static final Random numerosAleatorios = new Random();

//el constructor llena el paquete de cartas

public PaqueteDeCartas()

{
String [] caras = {"As", "Dos", "Tres", "Cuatro", "Cinco", "Seis", "Siete", "Ocho",

"Nueve", "Diez", "Jota", "Quina", "Rey"};

String [] palos = {"Corazones", "Diamantes", "Treboles", "Espadas"};

paquete = new Carta[NUMERO_DE_CARTAS]; //crea el arreglo de objetos carta

cartaActual = 0; // se establece en 0 para que la primera Carta repartida sea paquete[0]

//llena el paquete con objetos Carta

for(int cuenta=0; cuenta<paquete.length; cuenta++)

paquete[cuenta]=new Carta(caras[cuenta%13],palos[cuenta/13]);

}// fin del constructor de PaqueteDeCartas

//barajar el paquete de Cartas con algoritmo de una pasada

public void barajar()

//despues de barajar, la repartición debe empezar en paquete[0] otra vez

cartaActual=0;//reinicialización a 0

//para cada Carta, selecionar otra Carta aleatoria (0 a 51)

for(int primera=0; primera<paquete.length; primera++)

//selecciona un numero aleatorio entre 0 y 51

int segunda = numerosAleatorios.nextInt(NUMERO_DE_CARTAS);

//INTERCAMBIAR carta actual con la carta seleccionada al azar

Carta temp =paquete[primera];

paquete[primera]=paquete[segunda];

paquete[segunda]= temp;

}//fin de for
}//fin de metodo barajar

//reparte una Carta

public Carta repartirCarta()

//determina si quedan CArtas por repartir

if (cartaActual< paquete.length)

return paquete[cartaActual++]; //devuelve la carta actual en el arreglo

else

return null; //retorna nullo para indicar que se repartieron todas las cartas

}//fin del metodo repartr Carta

}//fin de la clase PaqueteDeCartas

Main o clase principal

/*

* To change this license header, choose License Headers in Project Properties.

* To change this template file, choose Tools | Templates

* and open the template in the editor.

*/

package pruebapaquetedecartas;

/**

* @author Familia Galicia

*/

public class PruebapaquetedeCartas {

/**
* @param args the command line arguments

*/

public static void main(String[] args) {

// TODO code application logic here

PaqueteDeCartas miPaqueteDeCartas = new PaqueteDeCartas();

miPaqueteDeCartas.barajar();//coloca las cartas en orden aleatorio

//imprime las 52 cartas en el orden en el que se reparten

for(int i=1; i<=52; i++)

//reparte e imprime una carta

System.out.printf("%-19s",miPaqueteDeCartas.repartirCarta());

if(i%4 == 0)//imprimir 4 columnas y dar enter

System.out.println();

}//fin del for

}//fin del main

}// fin de la clase PruebapaquetedeCartas

También podría gustarte