1 //--------------------------------------------------------------------------
2 // TourneyPlayers.cc - Source file for the TourneyPlayers class
4 // Matthew E. Moses && Michael A. Long
7 // $Date: 1998/09/10 19:57:17 $
12 // $Log: TourneyPlayers.cc,v $
13 // Revision 1.7 1998/09/10 19:57:17 mlong
14 // lots of little bug fixes and a few new features
16 // Revision 1.6 1998/04/29 15:23:19 mlong
17 // prepairing for the move to daimi
18 // new sorting routine.
21 // Revision 1.2 1997/10/08 21:03:35 chess
22 // preparing for move to oracle machine at eworks.
24 // Revision 1.1 1997/05/14 16:59:13 chess
28 //--------------------------------------------------------------------------
30 // static char RCSid[] = "$Id: TourneyPlayers.cc,v 1.7 1998/09/10 19:57:17 mlong Exp $";
32 #include "TourneyPlayers.hh"
34 //- Constructor -----------------------------------------------------------
35 TourneyPlayers::TourneyPlayers(char *n, int r, float s) {
41 consecutiveBlacks = 0;
42 consecutiveWhites = 0;
45 sortValue = r/10000.0;
50 memset(oppName, '\0', NAMELEN);
52 memset(name, '\0', NAMELEN);
62 //- Constructor -----------------------------------------------------------
63 TourneyPlayers::TourneyPlayers() {
69 consecutiveBlacks = 0;
70 consecutiveWhites = 0;
78 memset(oppName, '\0', NAMELEN);
80 memset(name, '\0', NAMELEN);
88 //- DeConstructor ---------------------------------------------------------
89 TourneyPlayers::~TourneyPlayers() {
92 //- AlreadyPlayed --------------------------------------------------------
93 int TourneyPlayers::AlreadyPlayed(char *oppName) {
96 LinkListIter<Player> opponentIter(opponentList);
98 while((temp = opponentIter.Next())) {
99 if(!strcmp(oppName, temp->name)) {
107 //- Start of RemovePotentialOppList
108 int TourneyPlayers::RemovePotentialOppList() {
111 LinkListIter<Player> opponentIter(potentialOpponentList);
113 while((temp = opponentIter.Next())) {
114 potentialOpponentList.Delete(temp);
117 }//- end of RemovePotentialOppList
119 //- Start of RemoveFromOppList -------------------------------------------------
120 void TourneyPlayers::RemoveFromOppList(char *name) {
123 LinkListIter<Player> opponentIter(opponentList);
125 while((p = opponentIter.Next())) {
126 if(strcasecmp(p->name, name) == 0) {
127 opponentList.Delete(p);
131 }//- end RemoveFromOppList -----------------------------------------------------
133 //- Start of RemoveLastOpponent -------------------------------------------------
134 void TourneyPlayers::RemoveLastOpponent() {
135 Player *p=NULL, *last=NULL;
136 LinkListIter<Player> opponentIter(opponentList);
138 opponentIter.Reset();
139 while((p = opponentIter.Next()))
142 cout << name << " " << last->name << endl;
143 opponentList.Delete(last);
144 }//- end RemoveLastOpponent -----------------------------------------------------
146 //- Start GetOpponentPlayer --------------------------------------------------------
147 Player *TourneyPlayers::GetOpponentPlayer(char *oppName) {
149 LinkListIter<Player> opponentIter(opponentList);
151 while((temp = opponentIter.Next())) {
152 if(!strcmp(oppName, temp->name)) {
158 }//- end of GetOpponentPlayer
160 //- IsPaired ---------------------------------
161 int TourneyPlayers::IsPaired(void) {
165 //- ColorDue ---------------------------------
166 int TourneyPlayers::ColorDue(void) {
170 //- NowPaired ---------------------------------
171 void TourneyPlayers::NowPaired(int value) {
175 //-ChangeColorDue ---------------------------------
176 void TourneyPlayers::ChangeColorDue(int value) {
178 }//- end ToggleColorDue
180 //- AddWhite ---------------------------------
181 void TourneyPlayers::AddWhite(void) {
183 totalWhites++; // [HGM] this variable did not seem to get updated anywhere
188 //- AddBlack ---------------------------------
189 void TourneyPlayers::AddBlack(void) {
191 totalBlacks++; // [HGM] this variable did not seem to get updated anywhere
196 //- ClearWhites ---------------------------------
197 void TourneyPlayers::ClearWhites(void) {
198 consecutiveWhites = 0;
201 //- ClearBlacks ---------------------------------
202 void TourneyPlayers::ClearBlacks(void) {
203 consecutiveBlacks = 0;
206 //- ClearTotalWhites ---------------------------------
207 void TourneyPlayers::ClearTotalWhites(void) {
209 }//- end ClearTotalWhites
211 //- ClearTotalBlacks ---------------------------------
212 void TourneyPlayers::ClearTotalBlacks(void) {
214 }//- end ClearTotalBlacks
216 //- GetTotalWhites ---------------------------------
217 int TourneyPlayers::GetTotalWhites(void) {
219 }//- end GetTotalWhites
221 //- GetTotalBlacks ---------------------------------
222 int TourneyPlayers::GetTotalBlacks(void) {
224 }//- end GetTotalBlacks
226 //- GetConsecutiveWhites ---------------------------------
227 int TourneyPlayers::GetConsecutiveWhites(void) {
228 return consecutiveWhites;
229 }//- end GetConsecutiveWhites
231 //- GetConsecutiveBlacks ---------------------------------
232 int TourneyPlayers::GetConsecutiveBlacks(void) {
233 return consecutiveBlacks;
234 }//- end GetConsecutiveBlacks
236 //- CalculateScore --------------------------------------
237 void TourneyPlayers::CalculateScore(void) {
240 LinkListIter<Player> opponentIter(opponentList);
242 while((opp = opponentIter.Next())) {
243 if(opp->floatValue > 0.0) {
244 score += opp->floatValue;
248 }//- End of CalculateScore -------------------
250 //- CalculatePerform --------------------------------------
251 void TourneyPlayers::CalculatePerform(void) {
252 int total=0, counter=0, upsetpoints=0, rtng=0;
254 LinkListIter<Player> opponentIter(opponentList);
256 while((opp = opponentIter.Next())) {
257 if(!strcmp(opp->name, "_BYE_")) continue;
259 if(opp->rating <= 0) rtng = 1675;
260 if(opp->floatValue == 0.5) {
263 upsetpoints += (rtng - rating)/2;
264 } else if(opp->floatValue == 1.0) {
265 total += (rtng + 400);
267 upsetpoints += (rtng - rating);
268 } else if(opp->floatValue == 0.0) {
269 total += (rtng - 400);
275 perform = total/counter;
279 }//- End of CalculatePerform -------------------