闲来无事,写了一下马踏棋盘的算法,高手莫笑,有问题多指教。 马踏棋盘: 在8×8方格的棋盘上,从任意指定方格出发,为马寻找一条走遍棋盘每一格并且只经过一次的一条路径。 #include <iostream> #include <vector> #include <iomanip> using namespace std; class Point { public: Point(size_t x, size_t y):x_(x), y_(y) { } friend Point operator +(const Point &lhs, const Point &rhs) { return Point(lhs.x_ + rhs.x_, lhs.y_ + rhs.y_); } friend bool operator !=(const Point &lhs, const Point &rhs) { return (lhs.x_ != rhs.x_) || (lhs.y_ != rhs.y_); } size_t x_; size_t y_; }; class IChess { public: virtual size_t GetWidth() = 0; virtual size_t GetHight() = 0; virtual bool IsVisited(const Point &p) = 0; virtual bool IsPosInChess(const Point &p) = 0; virtual void MoveOn(const Point &p, size_t index) = 0; virtual Point G