Proyecto Poogame Blackjack
Upcoming SlideShare
Loading in...5
×

Like this? Share it with your network

Share

Proyecto Poogame Blackjack

  • 4,542 views
Uploaded on

Código fuente del programa BLACKJACK...

Código fuente del programa BLACKJACK
(poogame.blogspot.com)

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
4,542
On Slideshare
4,538
From Embeds
4
Number of Embeds
1

Actions

Shares
Downloads
199
Comments
0
Likes
2

Embeds 4

http://www.slashdocs.com 4

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. 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?: 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;iJOptionPane.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," MENU: 1. Quiénes vamos a jugar?" +
    " ... 2. Repartir cartas " +
    " 3. Desea más cartas... " +
    " 4. Ver mis cartas " +
    " 5. Conocer el estado de la mesa " +
    " 6. Ayuda " +
    " 7. Salir " );
    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!!!! Digitaste " +
    " mal? Recuerda que es un número el " +
    " que debes ingresar " );
    }
    if(numberJug > 0 && numberJug < 2) {
    number = true;
    JOptionPane.showMessageDialog(null," Debe haber más de un " +
    " jugador Repite el proceso por favor" );
    }
    if(numberJug < 0) {
    number = true;
    JOptionPane.showMessageDialog(null," No 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!" +
    " " );
    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 " );
    }
    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 " +
    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," NO ES DIFÍCIL JUGAR BLACK " +
    " JACK... Te ofrecemos una ayuda " +
    " 1. Te recomendamos seguir los el orden del menú " +
    " 2. Debes tratar de alcanzar la suma de tus " +
    " cartas cercano a 21 pero si lo superas " +
    " pierdes el juego automáticamente " +
    " 3. El As puede tomar el valor de uno u once " +
    " 4. No te preocupes por los resultados podrás" +
    " mirarlo en la opción del menú correspondiente" +
    " conocer estado de la mesa " +
    " 5. GRACIAS POR JUGAR ES UN " +
    " GUSTO SERVIRTE " );
    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;iif(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 ; iif(pa.equals(temp.getArregloJugador(i).getPass())) {
    p=i;
    }
    return p;
    }
    }