Ich machte ein schnelles Pokerspiel. Es erzeugt 5 Zufallszahlen und wandelt diese Zahlen basierend auf ihrem Wert in tatsächliche Kartenwerte und Symbole um. Ich habe jedoch Probleme, wenn es um die Handauswertung geht.Poker Spiel Hand Evaluator Arrays Zustand Struktur
Bis jetzt habe ich nur den Flush richtig gemacht, da es wirklich einfach ist, aber selbst dann ist es nicht perfekt (es druckt, dass der Benutzer einen Flush 5 mal hat ...) und ich würde es sehr schätzen, wenn mir jemand mit dem Paar helfen könnte , zwei Paare, drei von einer Art und gerade. Ich könnte den Rest danach machen, aber ich brauche nur ein Heads-Up, wie man das macht.
Vielen Dank im Voraus für Ihre Hilfe, hier ist der Code:
package tests;
import java.util.*;
public class TESTS {
public static void main(String[] args) {
boolean[] pack = new boolean[52]; // Array to not generate the same number twice
int[] cards = new int[5]; //The 5 unique random numbers are stored in here.
String[] cardsvalues = new String[5]; // This will assign the card's value based on the random number's value
char[] cardssymbols = new char[5];//This will assign the card's symbol based on the random number's value
char symbols[] = {'♥', '♦', '♣', '♠'}; // possible symbols that the random number can take
String values[] = {"A", "2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K"}; // possible values that the random number can take
Random give = new Random();
for (int i = 0; i < cards.length; i++) { // Gives 5 unique random numbers
do {
cards[i] = give.nextInt(52);
} while (pack[cards[i]]);
pack[cards[i]] = true;
System.out.println(cards[i]);
}
for (int i = 0; i < cards.length; i++) { // This converts the number to a card symbol based on the number's value
final int numOfSymbol = cards[i]/13;
cardssymbols[i] = symbols[numOfSymbol];
}
for (int i = 0; i < cards.length; i++) { // This converts the number to an actual card value based on the number's value.
final int numOfValues = cards[i] % 13;
cardsvalues[i] = values[numOfValues];
}
for (int i = 0; i < cardssymbols.length; i++) { // Prints the actual cards once they are converted
System.out.print(cardssymbols[i]);
System.out.println(cardsvalues[i]);
}
for (int i = 0; i < cardsvalues.length; i++) { //Here is the problem, i have no idea on how to make the handevaluator ...
if (cardsvalues[i] == cardsvalues[i] + 1) {
System.out.println("PAIR !!!");
} else if (cardsvalues[i] == cardsvalues[i] + 1 && cardsvalues[i] == cardsvalues[i] + 2) {
System.out.println("TRIPS !!!");
} else if (cardssymbols[0] == cardssymbols[1] && cardssymbols[1] == cardssymbols[2] && cardssymbols[2] == cardssymbols[3] && cardssymbols[3] == cardssymbols[4]) {
System.out.println("FLUSHHH");
}
}
}
Schritt eins. Die Schalter loswerden. – Taemyr
Schritt zwei: denke, bevor du tippst: Welchen Sinn macht es, das Deck selbst zu überprüfen? –
Ich verstehe nicht, warum sollte ich die Schalter loswerden? – Adriann