
作业社区
探索学习新天地,共享知识资源!
胡汉三66 的学生作业:
Player.hpp #ifndef _PLAYER_HEAD_H #define _PLAYER_HEAD_H #include using namespace std; class Player{ // 抽象类 // 玩家类 public: Player(const string &name,const string &color){ // 构造函数 this->name = name; this->color = color; } string getName(void) const{ // 获取 玩家名字 return name; } string getColor(void) const{ // 获取 棋子颜色 return color; } virtual bool placeChess(int x, int y) = 0; // 纯虚函数 // 判断 落子位置 是否可以 保存棋子 private: string name; string color; }; #endif WhitePlayer.hpp #ifndef _WHITEPLAYER_HEAD_H #define _WHITEPLAYER_HEAD_H #include "Player.hpp" #include "ChessBoard.hpp" #include "WhiteChess.hpp" class WhitePlayer:public Player{ // 白棋玩家类 // 继承 玩家类 public: WhitePlayer(const string &name):Player(name,"white"){} // 构造函数 bool placeChess(int x,int y){ // 判断 落子位置 是否可以 保存棋子 ChessBoard *chessBoard = ChessBoard::getChessBoard(); // 通过类函数 间接创建 棋盘对象 bool ok = chessBoard->isVaildPostion(x,y); // 判断 落子位置 是否可以 保存棋子 if(ok){ chessBoard->placeChess(new WhiteChess(x,y)); // 如果可以 创建白棋对象 保存棋子 } return ok; } }; #endif BlackPlayer.hpp #ifndef _BLACKPLAYER_HEAD_H #define _BLACKPLAYER_HEAD_H #include "Player.hpp" #include "ChessBoard.hpp" #include "BlackChess.hpp" class BlackPlayer:public Player{ // 黑棋玩家类 // 继承 玩家类 public: BlackPlayer(const string &name):Player(name,"black"){} // 构造函数 bool placeChess(int x,int y){ // 判断 落子位置 是否可以 保存棋子 ChessBoard *chessBoard = ChessBoard::getChessBoard(); // 通过类函数 间接创建 棋盘对象 bool ok = chessBoard->isVaildPostion(x,y); // 判断 落子位置 是否可以 保存棋子 if(ok){ chessBoard->placeChess(new BlackChess(x,y)); // 如果可以 创建白棋对象 保存棋子 } return ok; } }; #endif main.cpp #include "BlackChess.hpp" // 黑棋 #include "WhiteChess.hpp" // 白棋 #include "ChessBoard.hpp" // 棋盘 #include "BlackPlayer.hpp" // 黑棋玩家 #include "WhitePlayer.hpp" // 白棋玩家 int main(int argc, const char *argv[]){ ChessBoard *chessBoard = ChessBoard::getChessBoard(); // 通过类函数 间接创建 棋盘对象 chessBoard->show(); // 打印棋盘 WhiteChess *whiteChess = new WhiteChess(5,7); // 创建 白棋对象 BlackChess *blackChess = new BlackChess(9,5); // 创建 黑棋对象 chessBoard->placeChess(whiteChess); // 棋盘 存放 白棋 chessBoard->placeChess(blackChess); // 棋盘 存放 黑棋 WhitePlayer *whitePlayer = new WhitePlayer("wdog"); // 创建 白棋玩家 whitePlayer->placeChess(9,5); // 白棋玩家 下棋 whitePlayer->placeChess(9,7); // 白棋玩家 下棋 BlackPlayer *blackPlayer = new BlackPlayer("bdog"); // 创建 黑棋玩家 blackPlayer->placeChess(5,7); // 黑棋玩家 下棋 blackPlayer->placeChess(13,5); // 黑棋玩家 下棋 return 0; } 【图片】




