Commit dce2a7f4 by Yovan Martinez

Poker02 Agregados los metodos:…

Poker02 Agregados los metodos: valorcadenanumerico,formulayovan,repartircartas,imprimirresultados,valorjugadas
parent bff2fedd
...@@ -19,6 +19,7 @@ public class Poker { ...@@ -19,6 +19,7 @@ public class Poker {
public String getValue(){ public String getValue(){
return values; return values;
} }
//Metodo para cargar los valores y los palos //Metodo para cargar los valores y los palos
public void setValues(String carta){ public void setValues(String carta){
values = ordenarCadena(values + String.valueOf(carta.charAt(0))); values = ordenarCadena(values + String.valueOf(carta.charAt(0)));
...@@ -34,7 +35,8 @@ public class Poker { ...@@ -34,7 +35,8 @@ public class Poker {
return cadenaOrdenada; return cadenaOrdenada;
} }
//***********CONTROLA LA JUGADA QUE SE DA EN LOS PALOS //***********CONTROLA LA JUGADA QUE SE DA EN LOS PALOS
public String controlPalos(String palos){ public String controlPalos(){
String palos = suit;
int contador = formulaYovan(palos); int contador = formulaYovan(palos);
if (contador == 25) { if (contador == 25) {
return "COLOR"; return "COLOR";
...@@ -44,7 +46,8 @@ public class Poker { ...@@ -44,7 +46,8 @@ public class Poker {
} }
} }
//***********CONTROLA QUE JUGADA SE DA EN LOS VALORES //***********CONTROLA QUE JUGADA SE DA EN LOS VALORES
public String controlValor(String valores){ public String controlValor(){
String valores = values;
int contador = formulaYovan(valores); int contador = formulaYovan(valores);
int secuencial = 0; int secuencial = 0;
boolean thereIsLetter = false; boolean thereIsLetter = false;
...@@ -87,23 +90,9 @@ public class Poker { ...@@ -87,23 +90,9 @@ public class Poker {
} }
//Para mejor manejo si no cumple ninguna de las condiciones envia una cadena vacia //Para mejor manejo si no cumple ninguna de las condiciones envia una cadena vacia
return ""; return "";
}
// este es el único método que tienen que desarrollar
// para hacerlo, pueden hacer uso de otras clases (si es necesario),
// pero la corrección del ejercicio será automática en base a este
// método que está acá
public String ganadores(List<Carta[] > jugadas){
System.out.println("Cantidad de jugadas: " + jugadas.size());
for (Carta[] mano : jugadas) {
System.out.println("JUGADA ======================");
for (Carta c : mano) {
System.out.println(c.valorPalo());
}
}
return "0";
} }
//Con este metodo controlo de que manera se repite el string que recibe el metodo(Formula de yorhan ;D ) //Con este metodo controlo de que manera se repite el string que recibe el metodo(Formula de yorhan ;D )
public int formulaYovan(String cadena){ private int formulaYovan(String cadena){
int contador = 0; int contador = 0;
for (int i = 0; i < cadena.length(); i++) { for (int i = 0; i < cadena.length(); i++) {
for (int j = 0; j < cadena.length(); j++) { for (int j = 0; j < cadena.length(); j++) {
...@@ -117,7 +106,7 @@ public class Poker { ...@@ -117,7 +106,7 @@ public class Poker {
//Con este metodo le doy valor numerico a la cadena valor //Con este metodo le doy valor numerico a la cadena valor
public int valorCadenaNumerico(String strValue){ public int valorCadenaNumerico(String strValue){
int valorNumerico = 0; int valorNumerico = 0;
switch (controlValor(values)) { switch (controlValor()) {
case "89JQT": valorNumerico = 50; case "89JQT": valorNumerico = 50;
break; break;
case "9JKQT":valorNumerico = 55; case "9JKQT":valorNumerico = 55;
...@@ -131,82 +120,121 @@ public class Poker { ...@@ -131,82 +120,121 @@ public class Poker {
case "6789T":valorNumerico = 40; case "6789T":valorNumerico = 40;
break; break;
default: default:
for (int i = 0; i < array.length; i++) {valorNumerico = Character.valueOf(strValue.charAt(i));} for (int i = 0; i < strValue.length(); i++) {valorNumerico = Character.valueOf(strValue.charAt(i));}
break; break;
} }
return valorNumerico; return valorNumerico;
} }
public int valorJugadas(){
int puntaje = 0;
switch (controlValor()) {
case "POKER": puntaje = 17;
break;
case "FULL": puntaje = 13;
break;
case "TRIO": puntaje = 11;
break;
case "PAR DOBLE": puntaje = 9;
break;
case "PAR": puntaje = 7;
break;
case "": puntaje = 1;
break;
default:
break;
}
return puntaje;
}
//Metodo para generar cartas aleatorias
public void repartirCartas(Carta carta){
String [] valores = {"A","2","3","4","5","6","7","8","9","T","J","Q","K",};
String [] palos = {"D","S","C","H",};
carta.valor = (valores[(int)Math.floor(Math.random()*(11-0+1)+0)]);
carta.palo = (palos[(int)Math.floor(Math.random()*(3-0+1)+0)]);
}
//Metodo para imprimir resultados de cada jugador
public void imprimirResultados(Carta [] mano, int jugador){
if ((controlValor() == "") && (controlPalos() == "" )) {
System.out.print("jugador " + jugador + " : \n");
System.out.print("Sus cartas son: [");
for (int i = 0; i < mano.length; i++) {
System.out.print(mano[i].valorPalo() + ",");
}
System.out.print("]\n");
System.out.println("jugada: CARTA ALTA");
}else{
System.out.print("jugador " + jugador + " : \n");
System.out.print("Sus cartas son: [");
for (int i = 0; i < mano.length; i++) {
System.out.print(mano[i].valorPalo() + ",");
}
System.out.print("]\n");
System.out.println("Jugada: " + controlValor() + " " + controlPalos());
}
}
public static void main(String[] args) { public static void main(String[] args) {
Carta carta1 = new Carta("BB");
Carta carta1 = new Carta("AA"); Carta carta2 = new Carta("BB");
Carta carta2 = new Carta("AA"); Carta carta3 = new Carta("BB");
Carta carta3 = new Carta("AA"); Carta carta4 = new Carta("BB");
Carta carta4 = new Carta("AA"); Carta carta5 = new Carta("BB");
Carta carta5 = new Carta("AA"); Carta carta6 = new Carta("BB");
Carta carta6 = new Carta("AA"); Carta carta7 = new Carta("BB");
Carta carta7 = new Carta("AA"); Carta carta8 = new Carta("BB");
Carta carta8 = new Carta("AA"); Carta carta9 = new Carta("BB");
Carta carta9 = new Carta("AA"); Carta carta10 = new Carta("BB");
Carta carta10 = new Carta("AA"); Poker jugador1 = new Poker();
Poker partida = new Poker(); Poker jugador2 = new Poker();
String [] valores = {"A","2","3","4","5","6","7","8","9","T","J","Q","K",};
String [] palos = {"D","S","C","H",};
String [] cartas = new String [10]; String [] cartas = new String [10];
int control = 100;//Variable para controlar el ingreso de cartas repetidas int control = 100;//Variable para controlar el ingreso de cartas repetidas
Carta [] mano = new Carta[]{carta1,carta2,carta3,carta4,carta5,}; Carta [] mano = new Carta[]{carta1,carta2,carta3,carta4,carta5,};
Carta [] mano2 = new Carta[]{carta6,carta7,carta8,carta9,carta10,}; Carta [] mano2 = new Carta[]{carta6,carta7,carta8,carta9,carta10,};
while (control != 10) {
control = 0;
while (control > 10) {
for (int i = 0; i < mano.length; i++) { for (int i = 0; i < mano.length; i++) {
mano2[i].valor = mano2[i].valor.concat(valores[(int)Math.floor(Math.random()*(11-0+1)+0)]); //Se generan valores aleatorios para la primera mano
mano[i].palo = mano[i].palo.concat(palos[(int)Math.floor(Math.random()*(2-0+1)+0)]); jugador1.repartirCartas(mano[i]);
} //Se generan valores aleatorios para la segunda mano
for (int i = 0; i < mano2.length; i++) { jugador2.repartirCartas(mano2[i]);
mano2[i].valor = mano2[i].valor.concat(valores[(int)Math.floor(Math.random()*(11-0+1)+0)]);
mano2[i].palo = mano2[i].palo.concat(palos[(int)Math.floor(Math.random()*(2-0+1)+0)]);
} }
for (int i = 0; i < mano.length; i++) { for (int i = 0; i < mano.length; i++) {
for (int j = 0; j < mano.length; j++) { for (int j = 0; j < mano.length; j++) {
if (mano[i].valorPalo().equals(mano[j].valorPalo())) { if ((mano[i].valorPalo()).equals(mano[j].valorPalo())) {
control++; control++;
} }
if ((mano2[i].valorPalo()).equals(mano2[j].valorPalo())) {
control++;
} }
} if ((mano[i].valorPalo()).equals(mano2[j].valorPalo())) {
for (int i = 0; i < mano2.length; i++) {
for (int j = 0; j < mano2.length; j++) {
if (mano2[i].valorPalo().equals(mano2[j].valorPalo())) {
control++; control++;
} }
} }
} }
} }
control = 0;
//Le paso los valores con el metodo del profe //Le paso los valores con el metodo del profe
for (int i = 0; i < mano.length; i++) { for (int i = 0; i < mano.length; i++) {
partida.setValues(mano[i].valorPalo()); jugador1.setValues(mano[i].valorPalo());
} jugador2.setValues(mano2[i].valorPalo());
//Condicional para imprimir los resultados solo si no se encontraron cartas repetidas }
if(control == 5){ jugador1.imprimirResultados(mano,1);
if ((partida.controlValor(partida.getValue()) == "") && (partida.controlPalos(partida.getSuit()) == "" )) { jugador2.imprimirResultados(mano2,2);
System.out.println("CARTA ALTA"); //Decide el jugador con ayuda de metodos(Profe si sabes otra manera de decidir esto decime pls)
if ((jugador1.controlValor() == jugador2.controlValor()) && (jugador1.controlPalos() == jugador2.controlPalos())) {
if (jugador1.valorCadenaNumerico(jugador1.getValue())>jugador2.valorCadenaNumerico(jugador1.getValue())) {
System.out.println("Gana el jugador 1");
}else{ }else{
//Dejo a modo de comentario para posibles comprobaciones o controles System.out.println("Gana el jugador 2");
// System.out.println(partida.getSuit());
// System.out.println(partida.getValue());
System.out.print("Sus cartas son: [");
for (int i = 0; i < mano.length; i++) {
System.out.print(mano[i] + ",");
}
System.out.print("]\n");
System.out.println("Jugada: " + partida.controlValor(partida.getValue()) + " " + partida.controlPalos(partida.getSuit()));
} }
}else{ }else{
System.out.println("Jugada invalidas: Se encontraron cartas iguales, por favor intente de nuevo"); if (jugador1.valorJugadas() >jugador2.valorJugadas()) {
System.out.println("Gana el jugador 1");
}else{
System.out.println("Gana el jugador 2");
} }
} }
}
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment