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 {
public String getValue(){
return values;
}
//Metodo para cargar los valores y los palos
public void setValues(String carta){
values = ordenarCadena(values + String.valueOf(carta.charAt(0)));
......@@ -34,7 +35,8 @@ public class Poker {
return cadenaOrdenada;
}
//***********CONTROLA LA JUGADA QUE SE DA EN LOS PALOS
public String controlPalos(String palos){
public String controlPalos(){
String palos = suit;
int contador = formulaYovan(palos);
if (contador == 25) {
return "COLOR";
......@@ -44,7 +46,8 @@ public class Poker {
}
}
//***********CONTROLA QUE JUGADA SE DA EN LOS VALORES
public String controlValor(String valores){
public String controlValor(){
String valores = values;
int contador = formulaYovan(valores);
int secuencial = 0;
boolean thereIsLetter = false;
......@@ -87,23 +90,9 @@ public class Poker {
}
//Para mejor manejo si no cumple ninguna de las condiciones envia una cadena vacia
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 )
public int formulaYovan(String cadena){
private int formulaYovan(String cadena){
int contador = 0;
for (int i = 0; i < cadena.length(); i++) {
for (int j = 0; j < cadena.length(); j++) {
......@@ -117,7 +106,7 @@ public class Poker {
//Con este metodo le doy valor numerico a la cadena valor
public int valorCadenaNumerico(String strValue){
int valorNumerico = 0;
switch (controlValor(values)) {
switch (controlValor()) {
case "89JQT": valorNumerico = 50;
break;
case "9JKQT":valorNumerico = 55;
......@@ -131,82 +120,121 @@ public class Poker {
case "6789T":valorNumerico = 40;
break;
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;
}
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) {
Carta carta1 = new Carta("AA");
Carta carta2 = new Carta("AA");
Carta carta3 = new Carta("AA");
Carta carta4 = new Carta("AA");
Carta carta5 = new Carta("AA");
Carta carta6 = new Carta("AA");
Carta carta7 = new Carta("AA");
Carta carta8 = new Carta("AA");
Carta carta9 = new Carta("AA");
Carta carta10 = new Carta("AA");
Poker partida = new Poker();
String [] valores = {"A","2","3","4","5","6","7","8","9","T","J","Q","K",};
String [] palos = {"D","S","C","H",};
Carta carta1 = new Carta("BB");
Carta carta2 = new Carta("BB");
Carta carta3 = new Carta("BB");
Carta carta4 = new Carta("BB");
Carta carta5 = new Carta("BB");
Carta carta6 = new Carta("BB");
Carta carta7 = new Carta("BB");
Carta carta8 = new Carta("BB");
Carta carta9 = new Carta("BB");
Carta carta10 = new Carta("BB");
Poker jugador1 = new Poker();
Poker jugador2 = new Poker();
String [] cartas = new String [10];
int control = 100;//Variable para controlar el ingreso de cartas repetidas
Carta [] mano = new Carta[]{carta1,carta2,carta3,carta4,carta5,};
Carta [] mano2 = new Carta[]{carta6,carta7,carta8,carta9,carta10,};
while (control > 10) {
while (control != 10) {
control = 0;
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)]);
mano[i].palo = mano[i].palo.concat(palos[(int)Math.floor(Math.random()*(2-0+1)+0)]);
}
for (int i = 0; i < mano2.length; 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)]);
//Se generan valores aleatorios para la primera mano
jugador1.repartirCartas(mano[i]);
//Se generan valores aleatorios para la segunda mano
jugador2.repartirCartas(mano2[i]);
}
for (int i = 0; i < mano.length; i++) {
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++;
}
}
}
for (int i = 0; i < mano2.length; i++) {
for (int j = 0; j < mano2.length; j++) {
if (mano2[i].valorPalo().equals(mano2[j].valorPalo())) {
if ((mano2[i].valorPalo()).equals(mano2[j].valorPalo())) {
control++;
}
}
if ((mano[i].valorPalo()).equals(mano2[j].valorPalo())) {
control++;
}
}
}
}
control = 0;
//Le paso los valores con el metodo del profe
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){
if ((partida.controlValor(partida.getValue()) == "") && (partida.controlPalos(partida.getSuit()) == "" )) {
System.out.println("CARTA ALTA");
jugador1.imprimirResultados(mano,1);
jugador2.imprimirResultados(mano2,2);
//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{
//Dejo a modo de comentario para posibles comprobaciones o controles
// 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()));
System.out.println("Gana el jugador 2");
}
}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