Also habe ich dieses Mini-Projekt, für das ich arbeite, und es ist im Grunde eine einfache Methode in Java für ein Kartenspiel, das überprüft, ob die Zeichenfolge eine Flush hat. Denken Sie daran, ich bin ein Anfänger in Java (und Cardgames/Poker ...) so bin ich neu bei all dem.Wie kann ich mehrere Bedingungen in einer Schleife verwenden, um verschiedene Indizes einer Zeichenfolge zu vergleichen?
zB: die Zeichenfolge ist "" Kh3h7h8h2s "so ist die Hand König der Herzen , 3 der Herzen, 7 der Herzen, 8 der Herzen, 2 der Spaten usw. Der Rang ist im 1., 3., 5., 7., 9. Index der Zeichenfolge. Die Zeichenkette muss 5 des gleichen Ranges haben, um eine Spülung zu haben
public class CardProblemss {
String hand = "Kh3h7h8h2h";
public boolean hasFlush(String hand) {
String suit1 = Character.toString(hand.charAt(1));
String suit2 = Character.toString(hand.charAt(3));
String suit3 = Character.toString(hand.charAt(5));
String suit4 = Character.toString(hand.charAt(7));
String suit5 = Character.toString(hand.charAt(9));
int flushcounter = 0;
while (true) {
if (suit1.equals(suit2)) {
flushcounter++;
}
else if (suit2.equals(suit3)) {
flushcounter++;
}
else if (suit3.equals(suit4)) {
flushcounter++;
}
else if (suit4.equals(suit5)) {
flushcounter++;
}
System.out.println(flushcounter);
if (flushcounter >= 5) {
return true;
}
else {
return false;
}
}
}
Jetzt kann ich bereits sagen, dass mein Code blech ist. Aber meine Frage ist, kann ich eine Schleife formulieren, die im Grunde genommen die charAt (index) -Methode verwenden würde? Da der Rang der Hand bei Index 1,3,5,7,9 liegt, kann ich eine Schleife schreiben, die den Index dieser Methode bei jedem Durchlauf um 2 erhöht? Oder gibt es einen effizienteren Weg, dies zu tun? Vielen Dank.
ja, u kann ... 'for (int i = 0; i
sidgate