Red de conocimiento informático - Descarga de software - Cómo determinar el color de las cartas de póquer usando Java

Cómo determinar el color de las cartas de póquer usando Java

Las cartas de póquer tienen dos atributos: palo y tamaño de carta. Puede comparar si el traje y la forma de la cara aumentan o disminuyen respectivamente para determinar si están al ras. Pero como las cartas de póquer tendrán JQKA, es mejor implementar el tamaño de la carta en forma de matriz o cadena. Compare tamaños comparando subíndices. A continuación se muestra el código aproximado.

¿Público? ¿clase? ¿Vomitar? {

¿Privado? ¿Cadena? Color;

¿Privado? ¿Cadena? número

¿Público? ¿Cadena? obtenerColor()? {

¿Volver? Color;

}

¿Público? ¿Vacío? setColor(¿Cadena? Color)? {

¿Este color? =?Color;

}

¿Público? ¿Cadena? obtenerNúm()? {

¿Volver? número

}

¿Público? ¿Vacío? setNum(cadena?num)? {

¿Este número? =?num

}

¿Público? escupir (¿cadena? ¿color? ¿cadena? número)? {

super();

¿Este color? =?Color;

Este.num? =?num

}

¿Público? ¿Electricidad estática? ¿Vacío? principal(Cadena[]?args)? {

¿Listar la tarjeta GT que está vomitando? =?Nuevo? ArrayList ltvomitgt();

card.add(new?vomit("negro","2"));

card.add(new?vomit("negro") , "3"));

card.add(new? spit("黑", "4"));

card.add(new? spit("黑" , "5"));

card.add(new? spit("黑","6"));

//Aquí, debido a que 10 es un número de dos dígitos, y La superficie de la tarjeta no se utiliza, así que utilice 10 en lugar de 10.

¿Cadena? ¿examinar? =?"234567891j qka";

¿Booleano? ¿Bandera? =Verdadero;

//Comparador definido por el usuario, utiliza el tamaño del subíndice de num en verificación como base de comparación para la clasificación.

Colecciones.sort(tarjetas, nuevo ? comparador ltObject gt()?{

@override

público ?int ?comparison(Objeto ?o1, ? o2 )? :?check.índice de(er 1. getnum());

Entero org2?=?(int)(er1.getNum()?==?null?0.0?:?check .index of(er2 . getnum());

Regresar?org 1 comparar con( org 2);

}

});

¿Para qué? (int?i?=?0;?i?lt?card.size()-1;? i )? {

//Si los colores son diferentes, salta del bucle directamente

If (!card.get(i) .getColor().equals(card.get(i 1)).

getColor())){

¿Marcar? = false;

Break;

}

// Si la diferencia entre la carta anterior y la siguiente no es 1, significa que la cara de la carta no es correcto y el bucle está roto.

if((int)check . index of(card . get(I 1)). getNum())-(int)check . index of(card . get(I). getNum()) ! =1){

¿Marcar? =?Falso;

Romper;

}

}

if(flage){

Sistema . out.println("La superficie de la tarjeta está al ras");

} De lo contrario {

System.out.println("La superficie de la tarjeta no está al ras");

}

}

Pero la única desventaja de este método es que 10 no se puede utilizar directamente en la inspección y debe juzgarse cuando se presente más adelante. Si es 1, se puede cambiar directamente a 10.

De hecho, hay muchas formas de implementarlo. Estoy escribiendo esto porque estoy revisando recientemente, por lo que utilizaré más puntos de conocimiento.