Author: Mathieu Pagé
Date: 06:32:39 03/16/04
Go up one level in this thread
#ifndef _CWINBOARD_H_
#define _CWINBOARD_H_
#include <string>
#include <vector>
namespace WinboardWrapper{
virtual enum EResult {cWhitesWin, cBlackWin, cDraw};
enum EVariant {cWildCastle, cNoCastle, cFisherRandom, cBugHouse, cCrazyHouse,
cLosers, cSuicide, cGiveAway, cTwoKings, cKriegspiel,
cAtomic, c3Check, cUnknown};
std::vector <std::string> Tokenize(std::string s, char cDelimiteur);
class CWinboard
{
private:
// Functions parsing winboard's commands
void ParserProtover(std::vector<std::string> vecParams);
void ParserAccepted(std::vector<std::string> vecParams);
void ParserRejected(std::vector<std::string> vecParams);
void ParserNew(std::vector<std::string> vecParams);
void ParserVariant(std::vector<std::string> vecParams);
void ParserRandom(std::vector<std::string> vecParams);
void ParserForce(std::vector<std::string> vecParams);
void ParserGo(std::vector<std::string> vecParams);
void ParserPlayOther(std::vector<std::string> vecParams);
void ParserWhite(std::vector<std::string> vecParams);
void ParserBlack(std::vector<std::string> vecParams);
void ParserLevel(std::vector<std::string> vecParams);
void ParserSt(std::vector<std::string> vecParams);
void ParserSd(std::vector<std::string> vecParams);
void ParserTime(std::vector<std::string> vecParams);
void ParserOtime(std::vector<std::string> vecParams);
void ParserUserMove(std::vector<std::string> vecParams);
void ParserMoveNow(std::vector<std::string> vecParams);
void ParserPing(std::vector<std::string> vecParams);
void ParserDraw(std::vector<std::string> vecParams);
void ParserResult(std::vector<std::string> vecParams);
void ParserSetBoard(std::vector<std::string> vecParams);
void ParserEdit(std::vector<std::string> vecParams);
void ParserHint(std::vector<std::string> vecParams);
void ParserBk(std::vector<std::string> vecParams);
void ParserUndo(std::vector<std::string> vecParams);
void ParserRemove(std::vector<std::string> vecParams);
void ParserHard(std::vector<std::string> vecParams);
void ParserEasy(std::vector<std::string> vecParams);
void ParserPost(std::vector<std::string> vecParams);
void ParserNoPost(std::vector<std::string> vecParams);
void ParserAnalyze(std::vector<std::string> vecParams);
void ParserName(std::vector<std::string> vecParams);
void ParserRating(std::vector<std::string> vecParams);
void ParserIcs(std::vector<std::string> vecParams);
void ParserComputer(std::vector<std::string> vecParams);
void ParserPause(std::vector<std::string> vecParams);
void ParserResume(std::vector<std::string> vecParams);
void ParserPartner(std::vector<std::string> vecParams);
void ParserPTell(std::vector<std::string> vecParams);
void ParserHolding(std::vector<std::string> vecParams);
void ParserExit(std::vector<std::string> vecParams);
protected:
// Commands from xboard to the engine:
virtual void protover(std::string strVersionNumber)
{Error("Unknown command", "protover");};
virtual void accepted(std::string strCommand)
{Error("Unknown command", "accepted");};
virtual void rejected(std::string strCommand)
{Error("Unknown command", "rejected");};
virtual void _new()
{Error("Unknown command", "new");};
virtual void variant(EVariant evrVariant)
{Error("Unknown command", "variant");};
virtual void random()
{Error("Unknown command", "random");};
virtual void force()
{Error("Unknown command", "force");};
virtual void go()
{Error("Unknown command", "go");};
virtual void playother()
{Error("Unknown command", "playother");};
virtual void white()
{Error("Unknown command", "white");};
virtual void black()
{Error("Unknown command", "black");};
virtual void level(int iMovesPerControl, int iSecondsPerControl, int
iIncrement) {Error("Unknown command", "level");};
virtual void st(int iSecondsPerMoves)
{Error("Unknown command", "st");};
virtual void sd(int iDepth)
{Error("Unknown command", "sd");};
virtual void time(int iCentiSeconds)
{Error("Unknown command", "time");};
virtual void otime(int iCentiSeconds)
{Error("Unknown command", "otime");};
virtual void usermove(std::string strMove)
{Error("Unknown command", "usermove");};
virtual void movenow()
{Error("Unknown command", "?");};
virtual void ping(int iPingNumber)
{Error("Unknown command", "ping");};
virtual void draw()
{Error("Unknown command", "draw");};
virtual void result(EResult ersResult, std::string strComment)
{Error("Unknown command", "result");};
virtual void setboard(std::string strFen)
{Error("Unknown command", "setboard");};
virtual void edit()
{Error("Unknown command", "edit");};
virtual void editCommand(std::string strCommand)
{Error("Unknown command", strCommand);};
virtual void hint()
{Error("Unknown command", "hint");};
virtual void bk()
{Error("Unknown command", "bk");};
virtual void undo()
{Error("Unknown command", "undo");};
virtual void remove()
{Error("Unknown command", "remove");};
virtual void hard()
{Error("Unknown command", "hard");};
virtual void easy()
{Error("Unknown command", "easy");};
virtual void post()
{Error("Unknown command", "post");};
virtual void nopost()
{Error("Unknown command", "nopost");};
virtual void analyze()
{Error("Unknown command", "analyze");};
virtual void name(std::string strName)
{Error("Unknown command", "name");};
virtual void rating(int iOwnRating, int iOpponentRating)
{Error("Unknown command", "rating");};
virtual void ics(std::string strHostName)
{Error("Unknown command", "ics");};
virtual void computer()
{Error("Unknown command", "computer");};
virtual void pause()
{Error("Unknown command", "pause");};
virtual void resume()
{Error("Unknown command", "resume");};
virtual void exit()
{Error("Unknown command", "exit");};
// BugHouse commands:
virtual void partner(std::string strPartner)
{Error("Unknown command", "partner");};
virtual void NoPartner()
{Error("Unknown command", "partner");};
virtual void ptell(std::string strText)
{Error("Unknown command", "ptell");};
virtual void holding(std::string strWhite, std::string strBlack)
{Error("Unknown command", "holding");};
virtual void holding(std::string strWhite, std::string strBlack, char cColor,
char cPiece) {Error("Unknown command", "holdong");};
public:
// Commands from the engine to xboard
static void feature(bool ping, bool playother,
bool san, bool time,
bool draw, bool sigint,
bool sigterm, bool reuse,
bool analyze, std::string myname,
std::string variants, bool colors,
bool ics, bool name,
bool pause);
static void IllegalMove(std::string strMove, std::string strReason = "");
static void Error(std::string strErrorType, std::string strCommand);
static void Move(std::string strMove);
static void Result(EResult ersResultat, std::string strComment);
static void Resign();
static void OfferDraw();
static void TellOpponent(std::string strMessage);
static void TellOthers(std::string strMessage);
static void TellAll(std::string strMessage);
static void TellUser(std::string strMessage);
static void TellUserError(std::string strMessage);
static void AskUser(std::string strRepTag, std::string strMessage);
static void TellICS(std::string strMessage);
static void TellICSNoAlias(std::string strMessage);
static void ThinkingOutput(int iPly, int iScore, int iTime, int iNodes,
std::string strPV);
static void Pong(int iPingNumber);
void RunWinboardMode();
};
};
#endif // _CWINBOARD_H_
This page took 0 seconds to execute
Last modified: Thu, 15 Apr 21 08:11:13 -0700
Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.