com.threerings.parlor.card.trick.util
Class TrickCardGameUtil

java.lang.Object
  extended by com.threerings.parlor.card.trick.util.TrickCardGameUtil
All Implemented Interfaces:
CardCodes, TrickCardCodes, InvocationCodes

public class TrickCardGameUtil
extends Object
implements TrickCardCodes

Methods of general utility to trick-taking card games.


Field Summary
 
Fields inherited from interface com.threerings.parlor.card.trick.data.TrickCardCodes
BOTTOM, LEFT, RIGHT, TOP
 
Fields inherited from interface com.threerings.parlor.card.data.CardCodes
ACE, BLACK_JOKER, CLUBS, DIAMONDS, HEARTS, JACK, KING, QUEEN, RED_JOKER, SPADES
 
Fields inherited from interface com.threerings.presents.data.InvocationCodes
ACCESS_DENIED, E_ACCESS_DENIED, E_INTERNAL_ERROR, GLOBAL_GROUP, INTERNAL_ERROR
 
Constructor Summary
TrickCardGameUtil()
           
 
Method Summary
static boolean canFollowSuit(PlayerCard[] cardsPlayed, Hand hand)
          Checks whether the player can follow the suit lead with the hand given.
static boolean containsCard(PlayerCard[] cards, Card card)
          Checks whether the specified array contains the given card.
static int countSuitMembers(PlayerCard[] cards, int suit)
          Determines the number of cards that belong to the specified suit within the array given.
static boolean followsSuit(PlayerCard[] cardsPlayed, Card card)
          Checks whether the proposed card follows the suit lead.
static PlayerCard getHighestInLeadSuit(PlayerCard[] cardsPlayed, int trumpSuit)
          Returns the highest card (according to the standard A,K,...,2 ordering) in the suit lead, with an optional trump suit.
static int getLeftIndex(int pidx)
          For four-player games, returns the index of the player to the left of the specified player.
static int getNextInClockwiseSequence(int pidx)
          For four-player games, this returns the index of the player after the specified player going clockwise around the table.
static int getOppositeIndex(int pidx)
          For four-player games, returns the index of the player across from the specified player.
static int getOtherTeamIndex(int tidx)
          For four-player games with fixed partnerships, this returns the index of the other team.
static int getPartnerIndex(int pidx)
          For four-player games with fixed partnerships, this returns the index of the player's partner.
static int getRelativeLocation(int pidx1, int pidx2)
          For four-player games with fixed partnerships, this returns the relative location of one player from the point of view of another.
static int getRightIndex(int pidx)
          For four-player games, returns the index of the player to the right of the specified player.
static int getTeamIndex(int pidx)
          For four-player games with fixed partnerships, this returns the index of the player's team.
static int getTeamMemberIndex(int tidx, int midx)
          For four-player games with fixed partnerships, this returns the index of one of the members of a team.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

TrickCardGameUtil

public TrickCardGameUtil()
Method Detail

getTeamIndex

public static int getTeamIndex(int pidx)
For four-player games with fixed partnerships, this returns the index of the player's team.

Parameters:
pidx - the player index

getOtherTeamIndex

public static int getOtherTeamIndex(int tidx)
For four-player games with fixed partnerships, this returns the index of the other team.

Parameters:
tidx - the index of the team

getPartnerIndex

public static int getPartnerIndex(int pidx)
For four-player games with fixed partnerships, this returns the index of the player's partner.


getTeamMemberIndex

public static int getTeamMemberIndex(int tidx,
                                     int midx)
For four-player games with fixed partnerships, this returns the index of one of the members of a team.

Parameters:
tidx - the index of the team
midx - the index of the player within the team

getNextInClockwiseSequence

public static int getNextInClockwiseSequence(int pidx)
For four-player games, this returns the index of the player after the specified player going clockwise around the table.


getRelativeLocation

public static int getRelativeLocation(int pidx1,
                                      int pidx2)
For four-player games with fixed partnerships, this returns the relative location of one player from the point of view of another.

Parameters:
pidx1 - the index of the player to whom the location is relative
pidx2 - the index of the player whose location is desired
Returns:
the relative location (TOP, BOTTOM, LEFT, or RIGHT)

getLeftIndex

public static int getLeftIndex(int pidx)
For four-player games, returns the index of the player to the left of the specified player.


getRightIndex

public static int getRightIndex(int pidx)
For four-player games, returns the index of the player to the right of the specified player.


getOppositeIndex

public static int getOppositeIndex(int pidx)
For four-player games, returns the index of the player across from the specified player.


canFollowSuit

public static boolean canFollowSuit(PlayerCard[] cardsPlayed,
                                    Hand hand)
Checks whether the player can follow the suit lead with the hand given.


containsCard

public static boolean containsCard(PlayerCard[] cards,
                                   Card card)
Checks whether the specified array contains the given card.


countSuitMembers

public static int countSuitMembers(PlayerCard[] cards,
                                   int suit)
Determines the number of cards that belong to the specified suit within the array given.


followsSuit

public static boolean followsSuit(PlayerCard[] cardsPlayed,
                                  Card card)
Checks whether the proposed card follows the suit lead.


getHighestInLeadSuit

public static PlayerCard getHighestInLeadSuit(PlayerCard[] cardsPlayed,
                                              int trumpSuit)
Returns the highest card (according to the standard A,K,...,2 ordering) in the suit lead, with an optional trump suit.

Parameters:
trumpSuit - the trump suit, or -1 for none