Proyecto Poogame Blackjack

4,899 views
4,692 views

Published on

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

Published in: Education, Technology, Business
0 Comments
4 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
4,899
On SlideShare
0
From Embeds
0
Number of Embeds
6
Actions
Shares
0
Downloads
239
Comments
0
Likes
4
Embeds 0
No embeds

No notes for slide

Proyecto Poogame Blackjack

  1. 1. Código fuente BLACKJACK <br />Creación de la clase Carta<br />package ocio;<br />import java.util.Random;<br />public class Carta {<br />private String valor;<br />private String palo;<br />public Carta() {<br />Random rnd = new Random();<br />int x = 1;<br />x += (int)(rnd.nextDouble() * 13.0);<br />switch (x) {<br />case 1:<br />valor = " A" ;<br />break;<br />case 11:<br />valor = " J" ;<br />x = 10;<br />break;<br />case 12:<br />valor = " Q" ;<br />x = 10;<br />break;<br />case 13:<br />valor = " K" ;<br />x = 10;<br />break;<br />default:<br />valor =Integer.toString(x);<br />}<br />int y = 1;<br />y += (int)(rnd.nextDouble() * 4.0);<br />switch (y) {<br />case 1:<br />palo=" Corazones Rojos" ;<br />break;<br />case 2:<br />palo=" Diamantes" ;<br />break;<br />case 3:<br />palo=" Trébol" ;<br />break;<br />case 4:<br />palo=" Espadas" ;<br />break;<br />default:<br />palo = Integer.toString(y);<br />}<br />}<br />public int getValor() {<br />if(valor.equals(" A" ))<br />return 1;<br />else<br />if(valor.equals(" J" ) || valor.equals(" Q" ) || valor.equals(" K" ))<br />return 10;<br />return Integer.parseInt(valor);<br />}<br />public String getPalo() {<br />return palo;<br />}<br />}<br />Creacion de la clase Jugador<br />package ocio;<br />import javax.swing.JOptionPane;<br />public class Jugador {<br />private String nombre;<br />private String password;<br />private int apuesta;<br />private Carta[] arregloCartas;<br />private int numCarta; <br />private boolean as; <br />public Jugador(int nj, int i) {<br />this.arregloCartas = new Carta[10];<br />as=false;<br />String a = JOptionPane.showInputDialog(null," **Digita tu nombre: " );<br />nombre = a ;<br />String b = JOptionPane.showInputDialog(null," **Digita tu password: " );<br /> password = b;<br />for(;;){<br />String c = JOptionPane.showInputDialog(null," Tu apuesta es...?" );<br />int d;<br />try {<br />d=Integer.parseInt(c);<br />if(d < 1) <br /> JOptionPane.showMessageDialog(null," Te recordamos que tus apuestas deben exceder" +<br />" a un dólar" );<br />else {<br />apuesta = d;<br />break;<br />}<br />}catch(Exception e){<br />JOptionPane.showMessageDialog(null," Te recordamos que tus apuestas deben exceder" +<br />" a un dólar" );<br />}<br />}<br />numCarta=1;<br />}<br />public void setArregloCartas(){<br />for(int i=0;i<2;i++){<br />this.arregloCartas[i] = new Carta();<br />if (this.arregloCartas[i].getValor()==1)<br />as=true;<br />}<br />}<br />public void setCarta() {<br />numCarta+=1;<br />arregloCartas[numCarta] = new Carta();<br />}<br />public int getApuesta() {<br />return(apuesta);<br />}<br />public String getPass() {<br />return password;<br />}<br />public String getNombre() {<br />return nombre;<br />}<br />public boolean preguntar() {<br />String no = JOptionPane.showInputDialog(null,this.nombre + " ¿Desea otra carta?: S o N" );<br />if(no .toUpperCase().equals(" S" )) {<br />return true;<br />}<br />else {<br />if(no.toUpperCase().equals(" N" )) {<br />return false;<br />}<br />else {<br /> JOptionPane.showMessageDialog(null," Su opción no es válida" );<br />}<br />return false;<br />}<br />}<br />public int total() {<br />int sum = 0;<br />try {<br />for(int i = 0 ;i <= this.arregloCartas.length; i++) {<br />if(this.arregloCartas[i].getValor() == 1) {<br />sum = 11 + sum;<br />as=true;<br />}<br />else<br />sum = this.arregloCartas[i].getValor() + sum;<br />}<br />}catch(Exception e) {<br />System.out.print(" " );<br />}<br />if(as)<br />if(sum > 21)<br />sum -= 10;<br />return (sum);<br />}<br />public void verCartas() {<br />JOptionPane.showMessageDialog(null," " + this.nombre + " , tus Cartas son:" );<br />for(int i=0 ; i <= numCarta ; i++)<br />JOptionPane.showMessageDialog(null,this.arregloCartas[i].getValor() + " " + this.arregloCartas[i].getPalo());<br />}<br />}<br />Creacion de la clase Mesa<br />package ocio;<br />import javax.swing.JOptionPane;<br />public class Mesa {<br />private int apuestaTotal;<br />private int saldo;<br />private Jugador [] arregloJugador = {};<br />public Mesa(int nj) {<br />Jugador [] arregloJugador = new Jugador[nj];<br />try{<br />for(int i=0;i<nj;i++) {<br />JOptionPane.showMessageDialog(null," Jugador: " + (i+1));<br />arregloJugador[i] = new Jugador(nj,i);<br />}<br />}catch(Exception e) {<br />}<br />this.arregloJugador = arregloJugador;<br />apuestaTotal = sumaApuestas(nj);<br />JOptionPane.showMessageDialog(null," la apuesta acumulada en mesa es: $ " + apuestaTotal);<br />saldo = sumaApuestas(nj);<br />}<br />public Jugador getArregloJugador(int n) {<br />return (arregloJugador[n]);<br />}<br />public int sumaApuestas(int nj) {<br />int sum = 0;<br />try {<br />for(int i = 0 ;i <= nj; i++) {<br />sum = this.getArregloJugador(i).getApuesta() + sum;<br />}<br />}catch(Exception e) {<br />System.out.print(" " );<br />}<br />return (sum);<br />}<br />}<br />Creación de la clase Aplica<br />package ocio;<br />import javax.swing.JOptionPane;<br />public class Aplica {<br />public static void main(String[] args) {<br />JOptionPane.showMessageDialog(null," JUGUEMOS BLACKJACK" );<br />Mesa temp = new Mesa(0);<br />int indiceMenu = 0;<br />int a;<br />int numberJug = 0;<br />boolean ope1 = false, ope2 = false;<br />String pa = " " ;<br />do<br />for(;;){<br /> String men = JOptionPane.showInputDialog(null," MENU: 1. Quiénes vamos a jugar?" +<br />" ... 2. Repartir cartas " +<br />" 3. Desea más cartas... " +<br />" 4. Ver mis cartas " +<br />" 5. Conocer el estado de la mesa " +<br />" 6. Ayuda " +<br />" 7. Salir " );<br />try {<br />indiceMenu = Integer.parseInt(men);<br />}catch(NumberFormatException e){<br />JOptionPane.showMessageDialog(null," Las letras no se admiten como opciones" +<br />" del menú" );<br />indiceMenu=8;<br />}<br />switch(indiceMenu) {<br />case 1: <br />boolean number = true;<br />do{<br /> String me = JOptionPane.showInputDialog(null," Cuántas personas " +<br />" participarán??? " );<br />try {<br />numberJug = Integer.parseInt (me);<br />number = false;<br />}catch(Exception e) {<br /> JOptionPane.showMessageDialog(null," ERROR!!!! Digitaste " +<br />" mal? Recuerda que es un número el " +<br />" que debes ingresar " );<br />}<br />if(numberJug > 0 && numberJug < 2) {<br />number = true;<br /> JOptionPane.showMessageDialog(null," Debe haber más de un " +<br />" jugador Repite el proceso por favor" );<br />}<br />if(numberJug < 0) {<br />number = true;<br /> JOptionPane.showMessageDialog(null," No puedes digitar " +<br />" números negativos" );<br />}<br />}while(number);<br />temp = new Mesa(numberJug);<br />ope1 = true;<br />break;<br />case 2: <br />if(!ope1) {<br /> JOptionPane.showMessageDialog(null," Primero menciona quién va a " +<br />" jugar" );<br />break;<br />}<br />else {<br />for(int i=0; i < numberJug; i++) {<br />temp.getArregloJugador(i).setArregloCartas();<br />}<br /> JOptionPane.showMessageDialog(null," Las cartas han sido Repartidas!" +<br />" " );<br />ope2=true;<br />}<br />break;<br />case 3:<br />if(ope1) {<br />if(!ope2){<br /> JOptionPane.showMessageDialog(null," Primero se deben repartir las" +<br />" cartas" );<br />break;<br />}<br />else {<br />a = capturarPassword (numberJug, temp, pa);<br />if(a >= 0 && temp.getArregloJugador(a).total() <= 21) {<br />JOptionPane.showMessageDialog(null," Bienvenido " + <br />temp.getArregloJugador(a).getNombre());<br />JOptionPane.showMessageDialog(null," Su total actual es de: " + <br />temp.getArregloJugador(a).total());<br />while(temp.getArregloJugador(a).preguntar()) {<br />temp.getArregloJugador(a).setCarta();<br />if( temp.getArregloJugador(a).total()<=21)<br />JOptionPane.showMessageDialog(null," Su total es de: " + <br />temp.getArregloJugador(a).total());<br />else {<br />JOptionPane.showMessageDialog(null," Ya excedio el " +<br />" limite de 21 con " <br />+ temp.getArregloJugador(a).total());<br />break;<br />}<br />}<br />}<br />else<br />JOptionPane.showMessageDialog(null," Password mal Ingresado!" );<br />}<br />break;<br />}<br />else{<br />JOptionPane.showMessageDialog(null," Primero menciona quién va a " +<br />" jugar" );<br />}<br />break;<br />case 4:<br />if(ope1) {<br />if(!ope2) {<br />JOptionPane.showMessageDialog(null," Primero se deben repartir" +<br />" las cartas " );<br />}<br />else{<br />a = capturarPassword (numberJug, temp, pa);<br />if(a >= 0)<br />temp.getArregloJugador(a).verCartas();<br />else<br />JOptionPane.showMessageDialog(null," Contraseña incorrecta!" );<br />}<br />break;<br />}<br />else {<br />JOptionPane.showMessageDialog(null," Primero menciona quién va a " +<br />" jugar" );<br />}<br />break;<br />case 5:<br />if(ope1){<br />if(!ope2){<br />JOptionPane.showMessageDialog(null," Primero debe repartir cartas" );<br />break;<br />}<br />else {<br />a=-1;<br />String m = JOptionPane.showInputDialog(null," Ingrese el password: " );<br />try {<br />pa = m;<br />}catch(Exception e) {<br />JOptionPane.showMessageDialog(null," Error en la captura!" );<br />}<br />if(pa.equals(temp.getArregloJugador(numberJug-1).getPass())) {<br />for(int i = 0; i < numberJug; i++) {<br />temp.getArregloJugador(i).verCartas();<br />}<br />JOptionPane.showMessageDialog(null," El ganador fue: " + <br />comparaJugadores(temp, numberJug) +<br />" y gano " + <br />temp.sumaApuestas(numberJug));<br />indiceMenu=6;<br />}<br />else {<br />JOptionPane.showMessageDialog(null," Usted no puede abrir la " +<br />" Mesa, El Banco es el unico " +<br />" autorizado!" );<br />}<br />break;<br />}<br />}<br />else {<br />JOptionPane.showMessageDialog(null," Primero menciona quién va a " +<br />" jugar" );<br />}<br />break;<br />case 6:<br />JOptionPane.showMessageDialog(null," NO ES DIFÍCIL JUGAR BLACK " +<br />" JACK... Te ofrecemos una ayuda " +<br />" 1. Te recomendamos seguir los el orden del menú " +<br />" 2. Debes tratar de alcanzar la suma de tus " +<br />" cartas cercano a 21 pero si lo superas " +<br />" pierdes el juego automáticamente " +<br />" 3. El As puede tomar el valor de uno u once " +<br />" 4. No te preocupes por los resultados podrás" +<br />" mirarlo en la opción del menú correspondiente" +<br />" conocer estado de la mesa " +<br />" 5. GRACIAS POR JUGAR ES UN " +<br />" GUSTO SERVIRTE " );<br />break;<br />case 7:<br />{<br />JOptionPane.showMessageDialog (null," ESPERO QUE ESTE PROGRAMA HAYA SIDO DE SU AGRADO" );<br />System.exit(0);<br />}break; <br />default:<br />JOptionPane.showMessageDialog(null," Opción Incorrecta, escoja de nuevo" );<br />}<br />}while(indiceMenu!=7);<br />}<br />public static String comparaJugadores(Mesa a, int numberJug) {<br />int altoPuntaje = a.getArregloJugador(0).total();<br />if (altoPuntaje >= 2)<br />altoPuntaje=0;<br />int winner=0;<br />for(int i=1;i<numberJug;i++) {<br />if(a.getArregloJugador(i).total()>altoPuntaje && a.getArregloJugador(i).total()<=21) {<br />altoPuntaje=a.getArregloJugador(i).total();<br />winner=i;<br />}<br />}<br />return " " + a.getArregloJugador(winner).getNombre() + " con: " + a.getArregloJugador(winner).total();<br />}<br />public static int capturarPassword(int numberJug, Mesa temp, String pa) {<br />int p=-1;<br />String m =JOptionPane.showInputDialog(null," ***Digita tu password: " );<br />try {<br />pa=m;<br />}catch(Exception e) {<br />JOptionPane.showMessageDialog(null," ERROR!!!!" );<br />}<br />for(int i=0 ; i<numberJug ; i++)<br />if(pa.equals(temp.getArregloJugador(i).getPass())) {<br />p=i;<br />}<br />return p;<br />}<br />}<br />

×