Minor compiler-compatibility fixes.
5 // Created by Jens Alfke on 7/3/08.
6 // Copyright 2008 Jens Alfke. All rights reserved.
18 /** Game API for subclasses to use / override */
19 @interface Game (Protected)
21 /** Should return a string describing the initial state of a new game.
22 The default value is an empty string. */
23 - (NSString*) initialStateString;
26 #pragma mark Abstract methods for subclasses to implement:
28 /** Called by -setTable: Should all all necessary Grids/Pieces/Cards/etc. to _table.
29 This method is always called during initialization of a new Game, and may be called
30 again afterwards, for example if the table area is resized. */
33 /** Called after the tablePerspectiveAngle property changes. */
34 - (void) perspectiveChanged;
36 /** Should return the winning player, if the current position is a win, else nil.
37 Default implementation returns nil. */
38 - (Player*) checkForWinner;
41 #pragma mark Protected methods for subclasses to call:
43 /** Sets the number of players in the game. Subclass initializers should call this. */
44 - (void) setNumberOfPlayers: (unsigned)n;
46 /** The angle by which the table is tilted "away from" the viewer to give 3D perspective.
47 Subclasses should not change this! It won't do anything. */
48 @property CGFloat tablePerspectiveAngle;
50 /** Animate a piece moving from src to dst. Used in implementing -applyMoveString:. */
51 - (BOOL) animateMoveFrom: (CALayer<BitHolder>*)src to: (CALayer<BitHolder>*)dst;
53 /** Animate a piece being placed in dst. Used in implementing -applyMoveString:. */
54 - (BOOL) animatePlacementIn: (CALayer<BitHolder>*)dst;
56 /** Checks for a winner and advances to the next player. */
62 /** Optional Game API for tracking the history of a game, and being able to replay moves. */
63 @interface Game (State)
65 /** A string describing the current state of the game (the positions of all pieces,
66 orderings of cards, player scores, ... */
67 @property (copy) NSString* stateString;
69 /** Add a move to the game based on the contents of the string.
70 The string must have been returned by -currentMove at some point. */
71 - (BOOL) applyMoveString: (NSString*)move;
73 /** An optional method called as a subroutine by -[Grid setStateString:].
74 If you decide to call that in your -setStateString: implementation, you need to implement this too. */
75 - (Piece*) makePieceNamed: (NSString*)name;