1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 package org.cb.jset;
21
22 /***
23 * Interface that board implementation must implement.
24 *
25 * @author jerome@coffeebreaks.org - last modified by $LastChangedBy: jerome $
26 * @version $Id: SetGameBoard.java 129 2004-04-15 05:00:43Z jerome $
27 */
28 interface SetGameBoard
29 {
30 /***
31 * @return the cards on the board.
32 */
33 CardProperties[] getCards();
34
35 /***
36 * @return the number of cards on the board.
37 */
38 int getNbCards();
39
40 /***
41 * Add the specified cards onto the board.
42 * @param cards a non-<code>null</code> array, containing non-<code>null</code> elements.
43 */
44 void addCards(CardProperties[] cards);
45
46 /***
47 * Tries to match the specified set on this board.
48 * @param set the set to remove
49 * @throws MatchingException if the specified set is not matching
50 * @throws BoardException if one of the set card is not on the board.
51 */
52 void matchSet(CardSet set) throws MatchingException, BoardException;
53
54 /***
55 * Adds a listener to this board. Does nothing if <code>null</code> is passed as argument.
56 * @param boardListener the listener to add
57 */
58 void addBoardListener(SetGameBoardListener boardListener);
59
60 /***
61 * Removes a listener from this board. Does nothing if <code>null</code> is passed as argument.
62 * @param boardListener the listener to remove
63 */
64 void removeBoardListener(SetGameBoardListener boardListener);
65 }