QT之中國象棋(1)
阿新 • • 發佈:2018-12-31
因為一直喜歡下象棋,今天動手實踐一下用QT實現中國象棋!先看下效果。。。。。
1.我採用c++實現的,有以下幾個類:
棋盤類
#include <QWidget> #include <QPainter> #include "stone.h" class Board : public QWidget { Q_OBJECT public: explicit Board(QWidget *parent = 0); virtual void paintEvent(QPaintEvent*); //painter void drawStone(QPainter&painter,int id); //畫棋子棋盤 QPoint center(int hang,int lie);//返回棋子畫素座標 QPoint center(int id); Stone _s[32]; int _r; //棋子半徑 signals: public slots: }; #endif // BOARD_H
棋子類:難點是要處理初始化不同id畫不同的字
class Stone { public: Stone(); enum TYPE{JIANG,CHE,MA,PAO,BING,SHI,XIANG}; int hang; int lie; int id; bool _dead; bool _red; TYPE _type; QString getText() { switch(this->_type) { case CHE:return "車"; case MA: return "馬"; case PAO:return "炮"; case BING:return "兵"; case JIANG:return "將"; case SHI:return "士"; case XIANG: return "相"; //default:return "錯誤!"; } }
--操作類(走法)