poker
Class HandAnalyzer

java.lang.Object
  extended by poker.HandAnalyzer

public class HandAnalyzer
extends java.lang.Object

Klasse mit statischen Funktionen zur Analyse von Händen und ihrer Wertberechnung.


Constructor Summary
HandAnalyzer()
           
 
Method Summary
static java.lang.String[] getBestHand(java.lang.String[] cards)
          Ermittelt aus einem Kartenarray die beste Hand.
private static java.lang.String[] getFlush(java.lang.String[] cards)
          Ermittelt aus einem Kartenarray die beste Flush-Hand.
static java.lang.String getHandString(java.lang.String[] hand)
          Liefert einen Beschreibung des Handwertes als String zurück.
static int getHandValue(java.lang.String[] hand)
          Berechnet aus einer Hand ihren numerischen Vergleichswert.
static java.lang.String[] getStraight(java.lang.String[] cards)
          Ermittelt aus einem Kartenarray die beste Straight-Hand.
static java.lang.String[] getStraightFlush(java.lang.String[] cards)
          Ermittelt aus einem Kartenarray den besten Straight-Flush.
private static java.lang.String[] sortCards(java.lang.String[] cards)
          Erstellt aus einem Kartenarray einen neuen Array, der nach den Werten der Karten sortiert ist und gibt diesen zurück.
static java.lang.String[][] splitIntoPairs(java.lang.String[] cards)
          Zerlegt einen Array in Paare bzw.
private static int toNumber(java.lang.String card)
          Liefert den numerischen Wert einer Karte, wobei gilt: 2 = 0, 3 = 1, ...
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

HandAnalyzer

public HandAnalyzer()
Method Detail

getBestHand

public static java.lang.String[] getBestHand(java.lang.String[] cards)
Ermittelt aus einem Kartenarray die beste Hand.

Parameters:
cards - der Kartenarray aus 7 Karten
Returns:
ein Array aus fünf Karten des übergebenen Arrays, die die beste Hand bilden

getFlush

private static java.lang.String[] getFlush(java.lang.String[] cards)
Ermittelt aus einem Kartenarray die beste Flush-Hand.

Parameters:
cards - der Kartenarray aus beliebigen Karten
Returns:
ein Array aus fünf Flushkarten des übergebenen Arrays, oder null

getHandString

public static java.lang.String getHandString(java.lang.String[] hand)
Liefert einen Beschreibung des Handwertes als String zurück.

Parameters:
hand - Die Hand bestehend aus mind. 2 Karten.
Returns:
Ein String, der den Handwert beschreibt.

getHandValue

public static int getHandValue(java.lang.String[] hand)
Berechnet aus einer Hand ihren numerischen Vergleichswert.

Parameters:
hand - Die Hand bestehend aus fünf Karten.
Returns:
Der numerische Vergleichswert.

getStraight

public static java.lang.String[] getStraight(java.lang.String[] cards)
Ermittelt aus einem Kartenarray die beste Straight-Hand.

Parameters:
cards - der Kartenarray aus beliebigen Karten
Returns:
ein Array aus fünf Karten des übergebenen Arrays, die eine Straight bilden, oder null

getStraightFlush

public static java.lang.String[] getStraightFlush(java.lang.String[] cards)
Ermittelt aus einem Kartenarray den besten Straight-Flush.

Parameters:
cards - der Kartenarray aus beliebig vielen Karten
Returns:
ein Array aus fünf Karten des übergebenen Arrays, die den besten Straight Flush bilden

sortCards

private static java.lang.String[] sortCards(java.lang.String[] cards)
Erstellt aus einem Kartenarray einen neuen Array, der nach den Werten der Karten sortiert ist und gibt diesen zurück.

Parameters:
cards - der Kartenarray
Returns:
ein sortierter Kartenarray.

splitIntoPairs

public static java.lang.String[][] splitIntoPairs(java.lang.String[] cards)
Zerlegt einen Array in Paare bzw. Einzelkarten.

Parameters:
cards - ein beliebiger Array aus Karten
Returns:
ein zweidimensionaler Kartenarray, wobei gilt: [0][] - die Einzelkarten oder null, [1][] - die Paare oder null, [2][] - die Drillinge oder null, [3][] - die Vierlinge oder null

toNumber

private static int toNumber(java.lang.String card)
Liefert den numerischen Wert einer Karte, wobei gilt: 2 = 0, 3 = 1, ... As = 12.

Parameters:
card - die zu bestimmende Karte
Returns:
der Wert der Karte oder -1 bei Fehler