#ifndef SIMULATION_ChessSimulation #define SIMULATION_ChessSimulation #include "ChessVideo.h"; typedef Object3D* GraphicalObject; typedef Camera* SceneCamera; #include #include using namespace std; class ChessSimulation__MESSAGEBOARD__ { public: ChessSimulation__MESSAGEBOARD__(){}; void clear() { messageBoard_.clear(); }; string getMessage(string index) { return messageBoard_[index]; }; void postMessage(string index, string msg) { messageBoard_[index] = msg; }; operator=(ChessSimulation__MESSAGEBOARD__& msgBrdNew) { messageBoard_ = msgBrdNew.messageBoard_; }; protected: map messageBoard_; }; class ChessSimulation__AGENT__ { public: ChessSimulation__AGENT__() { messageBoard_ = NULL; }; void setMessageBoard(ChessSimulation__MESSAGEBOARD__* messageBoard) { messageBoard_ = messageBoard; }; void setMessageBoardNew(ChessSimulation__MESSAGEBOARD__* messageBoardNew) { messageBoardNew_ = messageBoardNew; }; protected: ChessSimulation__MESSAGEBOARD__* messageBoard_; ChessSimulation__MESSAGEBOARD__* messageBoardNew_; }; class ChessPiece__MODEL__: public ChessSimulation__AGENT__ { public: ChessPiece__MODEL__(); virtual void Tick(); protected: GraphicalObject piece; string square; string toSquare; bool firstTick; bool moving; bool jump; bool goingToSky; real speed; int numSteps; int step; int countDown; real dx; real dy; real dz; }; class whitePawn1__AGENT__: public ChessPiece__MODEL__ { public: whitePawn1__AGENT__(); void Tick(); protected: }; class whitePawn2__AGENT__: public ChessPiece__MODEL__ { public: whitePawn2__AGENT__(); void Tick(); protected: }; class whitePawn3__AGENT__: public ChessPiece__MODEL__ { public: whitePawn3__AGENT__(); void Tick(); protected: }; class whitePawn4__AGENT__: public ChessPiece__MODEL__ { public: whitePawn4__AGENT__(); void Tick(); protected: }; class whitePawn5__AGENT__: public ChessPiece__MODEL__ { public: whitePawn5__AGENT__(); void Tick(); protected: }; class whitePawn6__AGENT__: public ChessPiece__MODEL__ { public: whitePawn6__AGENT__(); void Tick(); protected: }; class whitePawn7__AGENT__: public ChessPiece__MODEL__ { public: whitePawn7__AGENT__(); void Tick(); protected: }; class whitePawn8__AGENT__: public ChessPiece__MODEL__ { public: whitePawn8__AGENT__(); void Tick(); protected: }; class blackPawn1__AGENT__: public ChessPiece__MODEL__ { public: blackPawn1__AGENT__(); void Tick(); protected: }; class blackPawn2__AGENT__: public ChessPiece__MODEL__ { public: blackPawn2__AGENT__(); void Tick(); protected: }; class blackPawn3__AGENT__: public ChessPiece__MODEL__ { public: blackPawn3__AGENT__(); void Tick(); protected: }; class blackPawn4__AGENT__: public ChessPiece__MODEL__ { public: blackPawn4__AGENT__(); void Tick(); protected: }; class blackPawn5__AGENT__: public ChessPiece__MODEL__ { public: blackPawn5__AGENT__(); void Tick(); protected: }; class blackPawn6__AGENT__: public ChessPiece__MODEL__ { public: blackPawn6__AGENT__(); void Tick(); protected: }; class blackPawn7__AGENT__: public ChessPiece__MODEL__ { public: blackPawn7__AGENT__(); void Tick(); protected: }; class blackPawn8__AGENT__: public ChessPiece__MODEL__ { public: blackPawn8__AGENT__(); void Tick(); protected: }; class whiteKnight1__AGENT__: public ChessPiece__MODEL__ { public: whiteKnight1__AGENT__(); void Tick(); protected: }; class whiteKnight2__AGENT__: public ChessPiece__MODEL__ { public: whiteKnight2__AGENT__(); void Tick(); protected: }; class blackKnight1__AGENT__: public ChessPiece__MODEL__ { public: blackKnight1__AGENT__(); void Tick(); protected: }; class blackKnight2__AGENT__: public ChessPiece__MODEL__ { public: blackKnight2__AGENT__(); void Tick(); protected: }; class whiteBishop1__AGENT__: public ChessPiece__MODEL__ { public: whiteBishop1__AGENT__(); void Tick(); protected: }; class whiteBishop2__AGENT__: public ChessPiece__MODEL__ { public: whiteBishop2__AGENT__(); void Tick(); protected: }; class blackBishop1__AGENT__: public ChessPiece__MODEL__ { public: blackBishop1__AGENT__(); void Tick(); protected: }; class blackBishop2__AGENT__: public ChessPiece__MODEL__ { public: blackBishop2__AGENT__(); void Tick(); protected: }; class whiteRook1__AGENT__: public ChessPiece__MODEL__ { public: whiteRook1__AGENT__(); void Tick(); protected: }; class whiteRook2__AGENT__: public ChessPiece__MODEL__ { public: whiteRook2__AGENT__(); void Tick(); protected: }; class blackRook1__AGENT__: public ChessPiece__MODEL__ { public: blackRook1__AGENT__(); void Tick(); protected: }; class blackRook2__AGENT__: public ChessPiece__MODEL__ { public: blackRook2__AGENT__(); void Tick(); protected: }; class whiteQueen1__AGENT__: public ChessPiece__MODEL__ { public: whiteQueen1__AGENT__(); void Tick(); protected: }; class blackQueen1__AGENT__: public ChessPiece__MODEL__ { public: blackQueen1__AGENT__(); void Tick(); protected: }; class whiteKing1__AGENT__: public ChessPiece__MODEL__ { public: whiteKing1__AGENT__(); void Tick(); protected: }; class blackKing1__AGENT__: public ChessPiece__MODEL__ { public: blackKing1__AGENT__(); void Tick(); protected: }; class chessPlayer__AGENT__: public ChessSimulation__AGENT__ { public: chessPlayer__AGENT__(); void Tick(); protected: bool firstTick; int move; }; class chessBoard__AGENT__: public ChessSimulation__AGENT__ { public: chessBoard__AGENT__(); void Tick(); protected: bool firstTick; }; class Camera01__AGENT__: public ChessSimulation__AGENT__ { public: Camera01__AGENT__(); void Tick(); protected: SceneCamera camera; int count; }; class Camera02__AGENT__: public ChessSimulation__AGENT__ { public: Camera02__AGENT__(); void Tick(); protected: SceneCamera camera; int count; }; class Camera03__AGENT__: public ChessSimulation__AGENT__ { public: Camera03__AGENT__(); void Tick(); protected: SceneCamera camera; int count; }; class ChessSimulation { public: ChessSimulation(); void clear(); void Tick(); ChessSimulation__MESSAGEBOARD__& getMessageBoard(); protected: ChessSimulation__MESSAGEBOARD__ messageBoard_; ChessSimulation__MESSAGEBOARD__ messageBoardNew_; whitePawn1__AGENT__ whitePawn1; whitePawn2__AGENT__ whitePawn2; whitePawn3__AGENT__ whitePawn3; whitePawn4__AGENT__ whitePawn4; whitePawn5__AGENT__ whitePawn5; whitePawn6__AGENT__ whitePawn6; whitePawn7__AGENT__ whitePawn7; whitePawn8__AGENT__ whitePawn8; blackPawn1__AGENT__ blackPawn1; blackPawn2__AGENT__ blackPawn2; blackPawn3__AGENT__ blackPawn3; blackPawn4__AGENT__ blackPawn4; blackPawn5__AGENT__ blackPawn5; blackPawn6__AGENT__ blackPawn6; blackPawn7__AGENT__ blackPawn7; blackPawn8__AGENT__ blackPawn8; whiteKnight1__AGENT__ whiteKnight1; whiteKnight2__AGENT__ whiteKnight2; blackKnight1__AGENT__ blackKnight1; blackKnight2__AGENT__ blackKnight2; whiteBishop1__AGENT__ whiteBishop1; whiteBishop2__AGENT__ whiteBishop2; blackBishop1__AGENT__ blackBishop1; blackBishop2__AGENT__ blackBishop2; whiteRook1__AGENT__ whiteRook1; whiteRook2__AGENT__ whiteRook2; blackRook1__AGENT__ blackRook1; blackRook2__AGENT__ blackRook2; whiteQueen1__AGENT__ whiteQueen1; blackQueen1__AGENT__ blackQueen1; whiteKing1__AGENT__ whiteKing1; blackKing1__AGENT__ blackKing1; chessPlayer__AGENT__ chessPlayer; chessBoard__AGENT__ chessBoard; Camera01__AGENT__ Camera01; Camera02__AGENT__ Camera02; Camera03__AGENT__ Camera03; }; #endif