-
Notifications
You must be signed in to change notification settings - Fork 3
/
Game.h
125 lines (117 loc) · 3.65 KB
/
Game.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
/*
Stockfish, a OS X GUI for the UCI chess engine with the same name.
Copyright (C) 2004-2011 Marco Costalba, Joona Kiiski, Tord Romstad
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#import <Cocoa/Cocoa.h>
#import "GameNode.h"
#import "ChessPosition.h"
#import "ChessMove.h"
#import "ChessClock.h"
@interface Game : NSObject {
NSString *whitePlayer;
NSString *blackPlayer;
NSString *event;
NSString *site;
NSString *round;
NSString *date;
result_t result;
NSString *rootFEN;
GameNode *root;
GameNode *currentNode;
ChessClock *clock;
BOOL FRC;
}
-(id)initWithFEN:(NSString *)fen;
-(id)initWithFRCid:(int)FRCid;
-(id)initWithPGNString:(NSString *)string;
-(id)init;
-(ChessClock *)clock;
-(NSString *)rootFEN;
-(NSString *)whitePlayer;
-(void)setWhitePlayer:(NSString *)str;
-(NSString *)blackPlayer;
-(void)setBlackPlayer:(NSString *)str;
-(NSString *)event;
-(void)setEvent:(NSString *)str;
-(NSString *)site;
-(void)setSite:(NSString *)str;
-(NSString *)date;
-(void)setDate:(NSString *)str;
-(NSString *)round;
-(void)setRound:(NSString *)str;
-(result_t)result;
-(void)setResult:(result_t)r;
-(id)root;
-(id)currentNode;
-(id)currentPosition;
-(int)pieceAtSquare:(int)squareIndex;
-(void)insertMove:(ChessMove *)move;
-(void)makeMove:(ChessMove *)move;
-(void)unmakeMove;
-(void)stepForward;
-(void)goToBeginningOfGame;
-(void)goToEndOfGame;
-(BOOL)isAtBeginningOfGame;
-(BOOL)isAtEndOfGame;
-(BOOL)previousVariationExists;
-(BOOL)nextVariationExists;
-(void)goToPreviousVariation;
-(void)goToNextVariation;
-(void)moveVariationUp;
-(void)moveVariationDown;
-(BOOL)branchPointExistsUp;
-(BOOL)branchPointExistsDown;
-(void)goBackToBranchPoint;
-(void)goForwardToBranchPoint;
-(BOOL)isAtBeginningOfVariation;
-(BOOL)isAtEndOfVariation;
-(void)goToBeginningOfVariation;
-(void)goToEndOfVariation;
-(void)deleteVariation;
-(BOOL)isInAVariation;
-(void)addComment:(NSString *)comment;
-(void)deleteComment;
-(BOOL)commentExistsForCurrentMove;
-(void)addNAG:(int)nag;
-(ChessMove *)parseSANMove:(NSString *)str;
-(NSString *)moveListString;
-(NSString *)moveListStringWithComments:(BOOL)includeComments
variations:(BOOL)includeVariations;
-(NSAttributedString *)moveListAttributedStringWithComments:(BOOL)includeComments
variations:(BOOL)includeVariations;
-(NSString *)PGNString;
-(ChessMove *)generateMoveFrom:(int)from to:(int)to
promotion:(int)promotion;
-(ChessMove *)generateMoveFrom:(int)from to:(int)to;
-(BOOL)whiteToMove;
-(BOOL)blackToMove;
-(void)startClock;
-(void)stopClock;
-(int)whiteRemainingTime;
-(int)blackRemainingTime;
-(int)whiteIncrement;
-(int)blackIncrement;
-(NSString *)clockString;
-(BOOL)isFRCGame;
-(void)setIsFRCGame:(BOOL)isFRCGame;
-(void)setTimeControlWithWhiteTime:(int)whiteTime
blackTime:(int)blackTime
whiteIncrement:(int)whiteIncrement
blackIncrement:(int)blackIncrement;
-(void)setTimeControlWithWhiteTime:(int)whiteTime
forMoves:(int)whiteNumOfMoves
blackTime:(int)blackTime
forMoves:(int)blackNumOfMoves;
-(void)dealloc;
-(void)saveToFile:(NSString *)filename;
@end