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.