Commit 47a21765 by Yovan Martinez

Finalizado poker con dos clases

parent 61731270
...@@ -5,140 +5,16 @@ import java.util.Arrays; ...@@ -5,140 +5,16 @@ import java.util.Arrays;
public class Carta { public class Carta {
public String valor; public String valor;
public String palo; public String palo;
public String suit = "";
public String values = "";
public Carta(){
valor = "";
palo = "";
}
//Constructor que puso el profe con intenciones que desconozco //Constructor que puso el profe con intenciones que desconozco
public Carta(String completo) public Carta(String completo)
{ {
this.valor = valor + ordenarCadena(String.valueOf(completo.charAt(0))); this.valor = String.valueOf(completo.charAt(0));
this.palo = palo + ordenarCadena(String.valueOf(completo.charAt(1))); this.palo = String.valueOf(completo.charAt(1));
}
//Guarda todos los valores de palo de las cartas en un solo string para guardarlos
public void armarPalos(String carta){
suit = ordenarCadena(suit + ordenarCadena(String.valueOf(carta.charAt(1))));
}
//Guarda todos los valores de las cartas en un solo string para trabajarlos
public void armarValores(String valores){
values = ordenarCadena(values + String.valueOf(valores.charAt(0)));
}
public String getSuit(){
return suit;
}
public String getValue(){
return values;
} }
//Segunda cosa que puso el profe con intenciones desconocidas para la mente promedio //Segunda cosa que puso el profe con intenciones desconocidas para la mente promedio
String valorPalo() String valorPalo()
{ {
return this.valor + this.palo; return this.valor + this.palo;
} }
//*************CONTROLA QUE JUGADA SE DA EN LOS PALOS
public int controlPalos(String palos){
int contador = 0;
for (int i = 0; i < palos.length(); i++) {
for (int j = 0; j < palos.length(); j++) {
if (palos.charAt(i) == palos.charAt(j)) {
contador++;
}
}
}
return contador;
}
//***********CONTROLA QUE JUGADA SE DA EN LOS VALORES
public String controlValor(String valores){
int contador = 0;
int secuencial = 0;
boolean thereIsLetter = false;
for (int i = 0; i < valores.length(); i++) {
for (int j = 0; j < valores.length(); j++) {
if (valores.charAt(i) == valores.charAt(j)) {
contador++;
}
}
}
if (contador < 6) {
//controla que existan letras en los valores mandados
for (int i = 0; i < valores.length(); i++) {
String l = String.valueOf(valores.charAt(i));
if (l == "T" || l == "J" || l == "Q" || l == "K" || l == "A") {
thereIsLetter = true;
break;
}
}
//Una condicional para el caso que existan letras
if(thereIsLetter == false){
//Para mejor entendimiento visual lo guardo en una variable de nombre mas corto
String v = getValue();
if ( (v.equals("89JQT")) || (v.equals("9JKQT")) || ((v).equals("AJKQT")) ||(v.equals("2345A")) || (v.equals("789JT")) ||(v.equals("6789T"))){
return "ESCALERA";
}
}else{
for (int i = 1; i < valores.length(); i++) {
if (valores.charAt(i) == valores.charAt(i-1) + 1) {
secuencial++;
}
}
if (secuencial == 4) {
return "ESCALERA";
}
}
}else if (contador == 17) {
return "POKER";
}else if(contador == 13){
return "FULL";
}else if(contador == 11){
return "TRIO";
}else if(contador == 9){
return "PAR DOBLE";
}else if(contador == 7){
return "PAR";
}
return "NADA";
}
//Valora la mano y devuelve un resultado final (depende en su totalidad de otros metodos)
public String valoracionMano(){
if (controlPalos(getSuit()) == 25 && controlValor(getValue()).equals("ESCALERA")){
return "ESCALERA COLOR";
}else if(controlPalos(getSuit()) < 25 && controlValor(getValue()).equals("POKER")){
return "POKER";
}else if (controlPalos(getSuit()) < 25 && controlValor(getValue()).equals("FULL")) {
return "FULL";
}else if (controlPalos(getSuit()) == 25 && controlValor(getValue()).equals("NADA") ) {
return "COLOR";
}else if (controlPalos(getSuit()) < 25 && controlValor(getValue()).equals("ESCALERA") ) {
return "ESCALERA";
}else if (controlPalos(getSuit()) < 25 && controlValor(getValue()).equals("TRIO") ) {
return "TRIO";
}else if (controlPalos(getSuit()) < 25 && controlValor(getValue()).equals("PAR") ) {
return "PAR";
}else if (controlPalos(getSuit()) < 25 && controlValor(getValue()).equals("PAR DOBLE") ) {
return "PAR DOBLE";
}
return "NADA";
}
//Recibe un string y lo ordena segun orden numerico o alfabetico
public String ordenarCadena(String original){
String numeroAOrdenar = original;
numeroAOrdenar = original;
char[] chars = numeroAOrdenar.toCharArray();
Arrays.sort(chars);
String cadenaOrdenada = new String(chars);
return cadenaOrdenada;
}
public static void main(String[] args) {
Carta cartas = new Carta();
String [] mano = new String []{"TH","JH","QH","KH","AH"};
for (int i = 0; i < mano.length; i++) {
cartas.armarPalos(mano[i]);
cartas.armarValores(mano[i]);
}
System.out.println(cartas.valoracionMano());
}
} }
import javax.sound.sampled.Port;
import javax.lang.model.element.Element;
import javax.print.DocFlavor.STRING;
import java.util.Arrays;
public class Poker { public class Poker {
public String valoracionMano(){ public String suit = "";
if (controlPalos(getSuit()) == 25 && controlValor(getValue()).equals("ESCALERA")){ public String values = "";
return "ESCALERA COLOR";
}else if(controlPalos(getSuit()) < 25 && controlValor(getValue()).equals("POKER")){ public Poker(){
return "POKER"; values = "";
}else if (controlPalos(getSuit()) < 25 && controlValor(getValue()).equals("FULL")) { suit = "";
return "FULL"; }
}else if (controlPalos(getSuit()) == 25 && controlValor(getValue()).equals("NADA") ) {
return "COLOR"; public String getSuit(){
}else if (controlPalos(getSuit()) < 25 && controlValor(getValue()).equals("ESCALERA") ) { return suit;
return "ESCALERA"; }
}else if (controlPalos(getSuit()) < 25 && controlValor(getValue()).equals("TRIO") ) { public String getValue(){
return "TRIO"; return values;
}else if (controlPalos(getSuit()) < 25 && controlValor(getValue()).equals("PAR") ) {
return "PAR";
}else if (controlPalos(getSuit()) < 25 && controlValor(getValue()).equals("PAR DOBLE") ) {
return "PAR DOBLE";
}
return "NADA";
} }
public void setValues(String carta){
values = ordenarCadena(values + carta);
}
public void setSuits(String carta){
suit = ordenarCadena(suit + carta);
}
//Recibe un string y lo ordena segun orden numerico o alfabetico
public String ordenarCadena(String original){
String numeroAOrdenar = original;
numeroAOrdenar = original;
char[] chars = numeroAOrdenar.toCharArray();
Arrays.sort(chars);
String cadenaOrdenada = new String(chars);
return cadenaOrdenada;
}
//***********CONTROLA LA JUGADA QUE SE DA EN LOS PALOS
public String controlPalos(String palos){ public String controlPalos(String palos){
int contador = 0; int contador = 0;
for (int i = 0; i < palos.length(); i++) { for (int i = 0; i < palos.length(); i++) {
...@@ -34,68 +50,80 @@ public class Poker { ...@@ -34,68 +50,80 @@ public class Poker {
} else { } else {
return ""; return "";
} }
return contador;
} }
//***********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){
int contador = 0; int contador = 0;
int secuencial = 0; int secuencial = 0;
boolean thereIsLetter = false; boolean thereIsLetter = false;
for (int i = 0; i < valores.length(); i++) { for (int i = 0; i < valores.length(); i++) {
for (int j = 0; j < valores.length(); j++) { for (int j = 0; j < valores.length(); j++) {
if (valores.charAt(i) == valores.charAt(j)) { if (valores.charAt(i) == valores.charAt(j)) {
contador++; contador++;
}
} }
} }
if (contador < 6) { }
//controla que existan letras en los valores mandados if (contador < 6) {
for (int i = 0; i < valores.length(); i++) { //controla que existan letras en los valores mandados
String l = String.valueOf(valores.charAt(i)); for (int i = 0; i < valores.length(); i++) {
if (l == "T" || l == "J" || l == "Q" || l == "K" || l == "A") { String l = String.valueOf(valores.charAt(i));
thereIsLetter = true; if (l == "T" || l == "J" || l == "Q" || l == "K" || l == "A") {
break; thereIsLetter = true;
} break;
} }
//Una condicional para el caso que existan letras
if(thereIsLetter == false){
//Para mejor entendimiento visual lo guardo en una variable de nombre mas corto
String v = getValue();
if ( (v.equals("89JQT")) || (v.equals("9JKQT")) || ((v).equals("AJKQT")) ||(v.equals("2345A")) || (v.equals("789JT")) ||(v.equals("6789T"))){
return "ESCALERA";
}
}else{
for (int i = 1; i < valores.length(); i++) {
if (valores.charAt(i) == valores.charAt(i-1) + 1) {
secuencial++;
}
}
if (secuencial == 4) {
return "ESCALERA";
}
}
}else if (contador == 17) {
return "POKER";
}else if(contador == 13){
return "FULL";
}else if(contador == 11){
return "TRIO";
}else if(contador == 9){
return "PAR DOBLE";
}else if(contador == 7){
return "PAR";
} }
return "NADA"; //Una condicional para el caso que existan letras
if(thereIsLetter == true){
//Para mejor entendimiento visual lo guardo en una variable de nombre mas corto
String v = getValue();
if ( (v.equals("89JQT")) || (v.equals("9JKQT")) || ((v).equals("AJKQT")) ||(v.equals("2345A")) || (v.equals("789JT")) ||(v.equals("6789T"))){
return "ESCALERA";
}
}else{
for (int i = 1; i < valores.length(); i++) {
if (Character.getNumericValue(valores.charAt(i)) == Character.getNumericValue(valores.charAt(i-1)) + 1) {
secuencial++;
}
}
if (secuencial == 4) {
return "ESCALERA";
}
}
}else if (contador == 17) {
return "POKER";
}else if(contador == 13){
return "FULL";
}else if(contador == 11){
return "TRIO";
}else if(contador == 9){
return "PAR DOBLE";
}else if(contador == 7){
return "PAR";
} }
return "";
}
public static void main(String[] args) { public static void main(String[] args) {
Carta cartas = new Carta(); Carta carta1 = new Carta("2D");
String [] mano = new String []{"TH","JH","QH","KH","AH"}; Carta carta2 = new Carta("3S");
for (int i = 0; i < mano.length; i++) { Carta carta3 = new Carta("4C");
cartas.armarPalos(mano[i]); Carta carta4 = new Carta("5H");
cartas.armarValores(mano[i]); Carta carta5 = new Carta("6H");
} Poker partida = new Poker();
System.out.println(cartas.valoracionMano()); //Le paso los palos con el metodo del profe
partida.setSuits(carta1.palo);
partida.setSuits(carta2.palo);
partida.setSuits(carta3.palo);
partida.setSuits(carta4.palo);
partida.setSuits(carta5.palo);
//Le paso los valores con el metodo del profe
partida.setValues(carta1.valor);
partida.setValues(carta2.valor);
partida.setValues(carta3.valor);
partida.setValues(carta4.valor);
partida.setValues(carta5.valor);
System.out.println(partida.controlValor(partida.getValue()) + " " + partida.controlPalos(partida.getSuit()));
} }
} }
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