<IMGSRC="../../resources/inherit.gif"ALT="extended by "><AHREF="../../jrummikub/model/StoneTray.html"title="class in jrummikub.model">jrummikub.model.StoneTray</A><<AHREF="../../jrummikub/model/Stone.html"title="class in jrummikub.model">Stone</A>>
<IMGSRC="../../resources/inherit.gif"ALT="extended by "><B>jrummikub.model.Hand</B>
<DT><B>All Implemented Interfaces:</B><DD>java.io.Serializable, java.lang.Cloneable, java.lang.Iterable<<AHREF="../../jrummikub/util/Pair.html"title="class in jrummikub.util">Pair</A><<AHREF="../../jrummikub/model/Stone.html"title="class in jrummikub.model">Stone</A>,<AHREF="../../jrummikub/model/Position.html"title="class in jrummikub.model">Position</A>>>, <AHREF="../../jrummikub/model/IHand.html"title="interface in jrummikub.model">IHand</A>, <AHREF="../../jrummikub/model/IStoneTray.html"title="interface in jrummikub.model">IStoneTray</A><<AHREF="../../jrummikub/model/Stone.html"title="class in jrummikub.model">Stone</A>></DD>
<DT><PRE>public class <B>Hand</B><DT>extends <AHREF="../../jrummikub/model/StoneTray.html"title="class in jrummikub.model">StoneTray</A><<AHREF="../../jrummikub/model/Stone.html"title="class in jrummikub.model">Stone</A>><DT>implements <AHREF="../../jrummikub/model/IHand.html"title="interface in jrummikub.model">IHand</A></DL>
</PRE>
<P>
Class managing a <AHREF="../../jrummikub/model/Player.html"title="class in jrummikub.model"><CODE>Player</CODE></A>'s <AHREF="../../jrummikub/model/Stone.html"title="class in jrummikub.model"><CODE>Stone</CODE></A>s
<THALIGN="left"><B>Nested classes/interfaces inherited from class jrummikub.model.<AHREF="../../jrummikub/model/StoneTray.html"title="class in jrummikub.model">StoneTray</A></B></TH>
</TR>
<TRBGCOLOR="white"CLASS="TableRowColor">
<TD><CODE><AHREF="../../jrummikub/model/StoneTray.Direction.html"title="enum in jrummikub.model">StoneTray.Direction</A></CODE></TD>
<CODE>private static java.util.Comparator<<AHREF="../../jrummikub/util/Pair.html"title="class in jrummikub.util">Pair</A><java.lang.Integer,<AHREF="../../jrummikub/model/StoneColor.html"title="enum in jrummikub.model">StoneColor</A>>></CODE></FONT></TD>
<THALIGN="left"><B>Fields inherited from class jrummikub.model.<AHREF="../../jrummikub/model/StoneTray.html"title="class in jrummikub.model">StoneTray</A></B></TH>
<CODE>private static <AHREF="../../jrummikub/util/Pair.html"title="class in jrummikub.util">Pair</A><java.util.TreeMap<<AHREF="../../jrummikub/util/Pair.html"title="class in jrummikub.util">Pair</A><java.lang.Integer,<AHREF="../../jrummikub/model/StoneColor.html"title="enum in jrummikub.model">StoneColor</A>>,java.lang.Integer>,java.lang.Integer></CODE></FONT></TD>
<TD><CODE><B><AHREF="../../jrummikub/model/Hand.html#countStones(java.util.List)">countStones</A></B>(java.util.List<<AHREF="../../jrummikub/model/Stone.html"title="class in jrummikub.model">Stone</A>> stones)</CODE>
<BR>
Counts the numbers of stones</TD>
<CODE>protected <AHREF="../../jrummikub/util/Pair.html"title="class in jrummikub.util">Pair</A><<AHREF="../../jrummikub/model/Position.html"title="class in jrummikub.model">Position</A>,<AHREF="../../jrummikub/model/StoneTray.Direction.html"title="enum in jrummikub.model">StoneTray.Direction</A>></CODE></FONT></TD>
<TD><CODE><B><AHREF="../../jrummikub/model/Hand.html#fixInvalidDrop(jrummikub.model.Stone, jrummikub.model.Position, jrummikub.model.StoneTray.Direction)">fixInvalidDrop</A></B>(<AHREF="../../jrummikub/model/Stone.html"title="class in jrummikub.model">Stone</A> stone,
<AHREF="../../jrummikub/model/Position.html"title="class in jrummikub.model">Position</A> pos,
<AHREF="../../jrummikub/model/StoneTray.Direction.html"title="enum in jrummikub.model">StoneTray.Direction</A> dir)</CODE>
<BR>
Checks whether the object may be placed on the given position, computes
<TD><CODE><B><AHREF="../../jrummikub/model/Hand.html#getStonePoints(jrummikub.model.GameSettings)">getStonePoints</A></B>(<AHREF="../../jrummikub/model/GameSettings.html"title="class in jrummikub.model">GameSettings</A> settings)</CODE>
<BR>
Get the accumulated number of points of stones in the hand</TD>
<TD><CODE><B><AHREF="../../jrummikub/model/Hand.html#incrementStoneCount(java.util.TreeMap, jrummikub.util.Pair)">incrementStoneCount</A></B>(java.util.TreeMap<<AHREF="../../jrummikub/util/Pair.html"title="class in jrummikub.util">Pair</A><java.lang.Integer,<AHREF="../../jrummikub/model/StoneColor.html"title="enum in jrummikub.model">StoneColor</A>>,java.lang.Integer> stones,
<AHREF="../../jrummikub/util/Pair.html"title="class in jrummikub.util">Pair</A><java.lang.Integer,<AHREF="../../jrummikub/model/StoneColor.html"title="enum in jrummikub.model">StoneColor</A>> stone)</CODE>
<BR>
Increments the count of a stone in the list of all stones</TD>
<TD><CODE><B><AHREF="../../jrummikub/model/Hand.html#isInitialMeldPossible(jrummikub.model.GameSettings)">isInitialMeldPossible</A></B>(<AHREF="../../jrummikub/model/GameSettings.html"title="class in jrummikub.model">GameSettings</A> settings)</CODE>
<BR>
Tests whether it is possible to lay down an initial meld using the stones
<THALIGN="left"><B>Methods inherited from class jrummikub.model.<AHREF="../../jrummikub/model/StoneTray.html"title="class in jrummikub.model">StoneTray</A></B></TH>
<THALIGN="left"><B>Methods inherited from interface jrummikub.model.<AHREF="../../jrummikub/model/IStoneTray.html"title="interface in jrummikub.model">IStoneTray</A></B></TH>
private static final java.util.Comparator<<AHREF="../../jrummikub/util/Pair.html"title="class in jrummikub.util">Pair</A><java.lang.Integer,<AHREF="../../jrummikub/model/StoneColor.html"title="enum in jrummikub.model">StoneColor</A>>><B>comparator</B></PRE>
public int <B>getFreeRowSpace</B>(int row)</PRE>
<DL>
<DD><B>Description copied from interface: <CODE><AHREF="../../jrummikub/model/IHand.html#getFreeRowSpace(int)">IHand</A></CODE></B></DD>
<DD>Gets the amount of free space in a hand row
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><AHREF="../../jrummikub/model/IHand.html#getFreeRowSpace(int)">getFreeRowSpace</A></CODE> in interface <CODE><AHREF="../../jrummikub/model/IHand.html"title="interface in jrummikub.model">IHand</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>row</CODE> - the row number
<DT><B>Returns:</B><DD>the number of stones that can fit into the row</DL>
</DD>
</DL>
<HR>
<ANAME="getRowCount()"><!----></A><H3>
getRowCount</H3>
<PRE>
public int <B>getRowCount</B>()</PRE>
<DL>
<DD><B>Description copied from interface: <CODE><AHREF="../../jrummikub/model/IHand.html#getRowCount()">IHand</A></CODE></B></DD>
<DD>The number of used rows
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><AHREF="../../jrummikub/model/IHand.html#getRowCount()">getRowCount</A></CODE> in interface <CODE><AHREF="../../jrummikub/model/IHand.html"title="interface in jrummikub.model">IHand</A></CODE></DL>
protected <AHREF="../../jrummikub/util/Pair.html"title="class in jrummikub.util">Pair</A><<AHREF="../../jrummikub/model/Position.html"title="class in jrummikub.model">Position</A>,<AHREF="../../jrummikub/model/StoneTray.Direction.html"title="enum in jrummikub.model">StoneTray.Direction</A>><B>fixInvalidDrop</B>(<AHREF="../../jrummikub/model/Stone.html"title="class in jrummikub.model">Stone</A> stone,
<AHREF="../../jrummikub/model/Position.html"title="class in jrummikub.model">Position</A> pos,
<AHREF="../../jrummikub/model/StoneTray.Direction.html"title="enum in jrummikub.model">StoneTray.Direction</A> dir)</PRE>
<DL>
<DD><B>Description copied from class: <CODE><AHREF="../../jrummikub/model/StoneTray.html#fixInvalidDrop(E, jrummikub.model.Position, jrummikub.model.StoneTray.Direction)">StoneTray</A></CODE></B></DD>
<DD>Checks whether the object may be placed on the given position, computes
new position if not
<P>
<DD><DL>
<DT><B>Overrides:</B><DD><CODE><AHREF="../../jrummikub/model/StoneTray.html#fixInvalidDrop(E, jrummikub.model.Position, jrummikub.model.StoneTray.Direction)">fixInvalidDrop</A></CODE> in class <CODE><AHREF="../../jrummikub/model/StoneTray.html"title="class in jrummikub.model">StoneTray</A><<AHREF="../../jrummikub/model/Stone.html"title="class in jrummikub.model">Stone</A>></CODE></DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>stone</CODE> - to be dropped<DD><CODE>pos</CODE> - the object is dropped at
<DT><B>Returns:</B><DD>null if the drop is valid, new position otherwise</DL>
public int <B>getStonePoints</B>(<AHREF="../../jrummikub/model/GameSettings.html"title="class in jrummikub.model">GameSettings</A> settings)</PRE>
<DL>
<DD><B>Description copied from interface: <CODE><AHREF="../../jrummikub/model/IHand.html#getStonePoints(jrummikub.model.GameSettings)">IHand</A></CODE></B></DD>
<DD>Get the accumulated number of points of stones in the hand
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><AHREF="../../jrummikub/model/IHand.html#getStonePoints(jrummikub.model.GameSettings)">getStonePoints</A></CODE> in interface <CODE><AHREF="../../jrummikub/model/IHand.html"title="interface in jrummikub.model">IHand</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>settings</CODE> - the game settings
public boolean <B>isInitialMeldPossible</B>(<AHREF="../../jrummikub/model/GameSettings.html"title="class in jrummikub.model">GameSettings</A> settings)</PRE>
<DL>
<DD><B>Description copied from interface: <CODE><AHREF="../../jrummikub/model/IHand.html#isInitialMeldPossible(jrummikub.model.GameSettings)">IHand</A></CODE></B></DD>
<DD>Tests whether it is possible to lay down an initial meld using the stones
on the hand
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><AHREF="../../jrummikub/model/IHand.html#isInitialMeldPossible(jrummikub.model.GameSettings)">isInitialMeldPossible</A></CODE> in interface <CODE><AHREF="../../jrummikub/model/IHand.html"title="interface in jrummikub.model">IHand</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>settings</CODE> - the game settings
<DT><B>Returns:</B><DD>true if an initial meld is possible</DL>
private static void <B>incrementStoneCount</B>(java.util.TreeMap<<AHREF="../../jrummikub/util/Pair.html"title="class in jrummikub.util">Pair</A><java.lang.Integer,<AHREF="../../jrummikub/model/StoneColor.html"title="enum in jrummikub.model">StoneColor</A>>,java.lang.Integer> stones,
<AHREF="../../jrummikub/util/Pair.html"title="class in jrummikub.util">Pair</A><java.lang.Integer,<AHREF="../../jrummikub/model/StoneColor.html"title="enum in jrummikub.model">StoneColor</A>> stone)</PRE>
<DL>
<DD>Increments the count of a stone in the list of all stones
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>stones</CODE> - all stones and their respective numbers<DD><CODE>stone</CODE> - the start stone</DL>
private static <AHREF="../../jrummikub/util/Pair.html"title="class in jrummikub.util">Pair</A><java.util.TreeMap<<AHREF="../../jrummikub/util/Pair.html"title="class in jrummikub.util">Pair</A><java.lang.Integer,<AHREF="../../jrummikub/model/StoneColor.html"title="enum in jrummikub.model">StoneColor</A>>,java.lang.Integer>,java.lang.Integer><B>countStones</B>(java.util.List<<AHREF="../../jrummikub/model/Stone.html"title="class in jrummikub.model">Stone</A>> stones)</PRE>
<DL>
<DD>Counts the numbers of stones
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>stones</CODE> - the stones to count
<DT><B>Returns:</B><DD>the numbers for all stones</DL>
</DD>
</DL>
<HR>
<ANAME="getIdenticalStoneCount()"><!----></A><H3>
getIdenticalStoneCount</H3>
<PRE>
public int <B>getIdenticalStoneCount</B>()</PRE>
<DL>
<DD><B>Description copied from interface: <CODE><AHREF="../../jrummikub/model/IHand.html#getIdenticalStoneCount()">IHand</A></CODE></B></DD>
<DD>Counts the pairs of identical stones
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><AHREF="../../jrummikub/model/IHand.html#getIdenticalStoneCount()">getIdenticalStoneCount</A></CODE> in interface <CODE><AHREF="../../jrummikub/model/IHand.html"title="interface in jrummikub.model">IHand</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Returns:</B><DD>number of identical stone pairs</DL>