Sei sulla pagina 1di 12

Código fuente BLACKJACK

Creación de la clase Carta


package ocio;

import java.util.Random;

public class Carta {

private String valor;


private String palo;

public Carta() {

Random rnd = new Random();


int x = 1;
x += (int)(rnd.nextDouble() * 13.0);
switch (x) {

case 1:
valor = "A";
break;
case 11:
valor = "J";
x = 10;
break;
case 12:
valor = "Q";
x = 10;
break;
case 13:
valor = "K";
x = 10;
break;
default:
valor =Integer.toString(x);
}

int y = 1;
y += (int)(rnd.nextDouble() * 4.0);
switch (y) {

case 1:
palo="Corazones Rojos";
break;
case 2:
palo="Diamantes";
break;
case 3:
palo="Trébol";
break;
case 4:
palo="Espadas";
break;
default:
palo = Integer.toString(y);
}
}

public int getValor() {

if(valor.equals("A"))
return 1;
else
if(valor.equals("J") || valor.equals("Q") ||
valor.equals("K"))
return 10;
return Integer.parseInt(valor);
}

public String getPalo() {

return palo;
}
}

Creacion de la clase Jugador

package ocio;

import javax.swing.JOptionPane;

public class Jugador {

private String nombre;


private String password;
private int apuesta;
private Carta[] arregloCartas;
private int numCarta;
private boolean as;

public Jugador(int nj, int i) {

this.arregloCartas = new Carta[10];


as=false;

String a = JOptionPane.showInputDialog(null,"**Digita tu
nombre: ");
nombre = a ;

String b = JOptionPane.showInputDialog(null,"**Digita tu
password: ");
password = b;

for(;;){

String c = JOptionPane.showInputDialog(null,"Tu apuesta


es...?");

int d;
try {

d=Integer.parseInt(c);
if(d < 1)
JOptionPane.showMessageDialog(null,"Te
recordamos que tus apuestas deben exceder" +
" a un dólar");
else {

apuesta = d;
break;
}
}catch(Exception e){

JOptionPane.showMessageDialog(null,"Te recordamos
que tus apuestas deben exceder" +
" a un dólar");
}
}

numCarta=1;
}

public void setArregloCartas(){

for(int i=0;i<2;i++){

this.arregloCartas[i] = new Carta();


if (this.arregloCartas[i].getValor()==1)
as=true;

}
}

public void setCarta() {

numCarta+=1;
arregloCartas[numCarta] = new Carta();
}

public int getApuesta() {

return(apuesta);
}

public String getPass() {

return password;
}

public String getNombre() {

return nombre;
}

public boolean preguntar() {


String no = JOptionPane.showInputDialog(null,this.nombre + "
¿Desea otra carta?: \n S o N");

if(no .toUpperCase().equals("S")) {

return true;
}
else {

if(no.toUpperCase().equals("N")) {

return false;
}
else {

JOptionPane.showMessageDialog(null,"Su opción no es
válida");
}
return false;
}
}

public int total() {

int sum = 0;
try {

for(int i = 0 ;i <= this.arregloCartas.length; i++) {

if(this.arregloCartas[i].getValor() == 1) {

sum = 11 + sum;
as=true;
}
else
sum = this.arregloCartas[i].getValor() +
sum;
}
}catch(Exception e) {

System.out.print("");
}
if(as)
if(sum > 21)
sum -= 10;
return (sum);
}

public void verCartas() {

JOptionPane.showMessageDialog(null,""+ this.nombre + ", tus


Cartas son:");
for(int i=0 ; i <= numCarta ; i++)
JOptionPane.showMessageDialog(null,this.arregloCartas[i].getValor()
+ " " + this.arregloCartas[i].getPalo());
}
}

Creacion de la clase Mesa

package ocio;

import javax.swing.JOptionPane;

public class Mesa {

private int apuestaTotal;


private int saldo;
private Jugador [] arregloJugador = {};

public Mesa(int nj) {

Jugador [] arregloJugador = new Jugador[nj];


try{

for(int i=0;i<nj;i++) {

JOptionPane.showMessageDialog(null,"Jugador:
" + (i+1));
arregloJugador[i] = new Jugador(nj,i);
}
}catch(Exception e) {

}
this.arregloJugador = arregloJugador;
apuestaTotal = sumaApuestas(nj);
JOptionPane.showMessageDialog(null,"la apuesta
acumulada en mesa es: $ " + apuestaTotal);
saldo = sumaApuestas(nj);

public Jugador getArregloJugador(int n) {

return (arregloJugador[n]);
}

public int sumaApuestas(int nj) {

int sum = 0;
try {

for(int i = 0 ;i <= nj; i++) {

sum = this.getArregloJugador(i).getApuesta()
+ sum;
}
}catch(Exception e) {

System.out.print("");
}
return (sum);
}
}

Creación de la clase Aplica

package ocio;
import javax.swing.JOptionPane;
public class Aplica {

public static void main(String[] args) {

JOptionPane.showMessageDialog(null,"JUGUEMOS BLACKJACK");
Mesa temp = new Mesa(0);
int indiceMenu = 0;
int a;
int numberJug = 0;
boolean ope1 = false, ope2 = false;
String pa = "";

do

for(;;){

String men = JOptionPane.showInputDialog(null,"\t\t MENU:


\n\t\t1. Quiénes vamos a jugar?" +
"... \n\t\t2. Repartir cartas\n" +
"\t\t3. Desea más cartas...\n" +
"\t\t4. Ver mis cartas\n" +
"\t\t5. Conocer el estado de la mesa\n" +
"\t\t6. Ayuda\n" +
"\t\t7. Salir\n");

try {

indiceMenu = Integer.parseInt(men);
}catch(NumberFormatException e){

JOptionPane.showMessageDialog(null,"Las letras no
se admiten como opciones" +
" del menú");
indiceMenu=8;
}

switch(indiceMenu) {

case 1:
boolean number = true;
do{
String me =
JOptionPane.showInputDialog(null,"Cuántas personas " +
"participarán??? ");

try {

numberJug = Integer.parseInt
(me);
number = false;
}catch(Exception e) {

JOptionPane.showMessageDialog(null,"ERROR!!!! \nDigitaste " +


"mal? Recuerda
que es un número el " +
"que debes
ingresar\n");
}
if(numberJug > 0 && numberJug < 2) {

number = true;

JOptionPane.showMessageDialog(null,"\nDebe haber más de un " +


"jugador\n Repite el
proceso por favor");
}
if(numberJug < 0) {

number = true;

JOptionPane.showMessageDialog(null,"\nNo puedes digitar " +


"números
negativos");
}
}while(number);
temp = new Mesa(numberJug);
ope1 = true;
break;

case 2:
if(!ope1) {

JOptionPane.showMessageDialog(null,"Primero menciona quién va a " +


"jugar");
break;
}
else {

for(int i=0; i < numberJug; i++) {

temp.getArregloJugador(i).setArregloCartas();
}

JOptionPane.showMessageDialog(null,"Las cartas han sido Repartidas!" +


"\n\n\n\n\n\n\n\n");
ope2=true;
}
break;

case 3:
if(ope1) {

if(!ope2){

JOptionPane.showMessageDialog(null,"Primero se deben repartir las" +


" cartas");
break;
}
else {

a = capturarPassword (numberJug,
temp, pa);
if(a >= 0 &&
temp.getArregloJugador(a).total() <= 21) {

JOptionPane.showMessageDialog(null,"Bienvenido " +

temp.getArregloJugador(a).getNombre());

JOptionPane.showMessageDialog(null,"Su total actual es de: " +

temp.getArregloJugador(a).total());

while(temp.getArregloJugador(a).preguntar()) {

temp.getArregloJugador(a).setCarta();
if(
temp.getArregloJugador(a).total()<=21)

JOptionPane.showMessageDialog(null,"Su total es de: " +

temp.getArregloJugador(a).total());
else {

JOptionPane.showMessageDialog(null,"Ya excedio el " +


"limite
de 21 con "
+
temp.getArregloJugador(a).total());
break;
}
}
}
else

JOptionPane.showMessageDialog(null,"Password mal Ingresado!");


}
break;
}
else{

JOptionPane.showMessageDialog(null,"Primero menciona quién va a " +


"jugar");
}
break;

case 4:
if(ope1) {

if(!ope2) {

JOptionPane.showMessageDialog(null,"Primero se deben repartir" +


" las cartas\n\n ");
}
else{

a = capturarPassword (numberJug,
temp, pa);
if(a >= 0)

temp.getArregloJugador(a).verCartas();
else

JOptionPane.showMessageDialog(null,"Contraseña incorrecta!");
}
break;
}
else {

JOptionPane.showMessageDialog(null,"Primero menciona quién va a " +


"jugar");
}
break;

case 5:
if(ope1){

if(!ope2){

JOptionPane.showMessageDialog(null,"Primero debe repartir cartas");


break;
}
else {

a=-1;
String m =
JOptionPane.showInputDialog(null,"Ingrese el password: ");

try {
pa = m;
}catch(Exception e) {

JOptionPane.showMessageDialog(null,"Error en la captura!");
}

if(pa.equals(temp.getArregloJugador(numberJug-1).getPass())) {

for(int i = 0; i <
numberJug; i++) {

temp.getArregloJugador(i).verCartas();
}

JOptionPane.showMessageDialog(null,"El ganador fue: " +

comparaJugadores(temp, numberJug) +
" y gano \n" +

temp.sumaApuestas(numberJug));
indiceMenu=6;
}
else {

JOptionPane.showMessageDialog(null,"Usted no puede abrir la " +


"Mesa, El
Banco es el unico " +

"autorizado!");
}
break;
}
}
else {

JOptionPane.showMessageDialog(null,"Primero menciona quién va a " +


"jugar");
}
break;

case 6:
JOptionPane.showMessageDialog(null,"\t\t\t\t
NO ES DIFÍCIL JUGAR BLACK " +
"JACK... Te ofrecemos una
ayuda\n\n" +
"1. Te recomendamos seguir los
el orden del menú\n" +
"2. Debes tratar de alcanzar la
suma de tus " +
"cartas cercano a 21 pero si lo
superas " +
"pierdes el juego
automáticamente\n" +
"3. El As puede tomar el valor
de uno u once\n" +
"4. No te preocupes por los
resultados podrás" +
"mirarlo en la opción del menú
correspondiente" +
"conocer estado de la mesa\n" +
"5. GRACIAS POR JUGAR ES UN " +
"GUSTO SERVIRTE\n");
break;

case 7:
{
JOptionPane.showMessageDialog (null,"ESPERO
QUE ESTE PROGRAMA HAYA SIDO DE SU AGRADO");

System.exit(0);
}break;
default:
JOptionPane.showMessageDialog(null,"Opción
Incorrecta, escoja de nuevo");
}
}while(indiceMenu!=7);
}

public static String comparaJugadores(Mesa a, int numberJug) {

int altoPuntaje = a.getArregloJugador(0).total();


if (altoPuntaje >= 2)
altoPuntaje=0;
int winner=0;
for(int i=1;i<numberJug;i++) {

if(a.getArregloJugador(i).total()>altoPuntaje &&
a.getArregloJugador(i).total()<=21) {

altoPuntaje=a.getArregloJugador(i).total();
winner=i;
}
}
return "" + a.getArregloJugador(winner).getNombre() + " con:
" + a.getArregloJugador(winner).total();
}

public static int capturarPassword(int numberJug, Mesa temp, String


pa) {

int p=-1;
String m =JOptionPane.showInputDialog(null,"***Digita tu
password: ");
try {

pa=m;
}catch(Exception e) {

JOptionPane.showMessageDialog(null,"ERROR!!!!");
}

for(int i=0 ; i<numberJug ; i++)


if(pa.equals(temp.getArregloJugador(i).getPass())) {
p=i;
}
return p;
}
}

Potrebbero piacerti anche