//main.cpp
#include <QtGui/QApplication>
#include "chessbroad.h"
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
ChessBroad w;
w.show();
return a.exec();
}
//chessbroad.h
#ifndef CHESSBROAD_H
#define CHESSBROAD_H
#include <QtGui/QWidget>
#include <QPainter>
#include <QMouseEvent>
#include <QFileDialog>
#include <QFile>
#include <QTextStream>
#include <QMenu>
#include <QAction>
#define NUM 9
#define N 32
#define NUMX 8
#define NUMY 9
class chess
{
public:
int name;
chess * next;
int tail;
int red;//红棋的个数
int blue;//蓝棋的个数
};
class mypos
{
public:
int myi;
int myj;
};
class hui
{
public:
int huii;
int huij;
};
class ChessBroad : public QWidget
{
Q_OBJECT
public:
ChessBroad(QWidget *parent = 0);
~ChessBroad();
protected:
void paintEvent(QPaintEvent *);
void mousePressEvent(QMouseEvent *event);
private slots:
void init();
void save();
void load();
void backchess();
private:
void insert(chess* &,int);
int g[NUMY+1][NUMX+1];//注意NUMY与NUMX位置不要颠倒
chess* f[NUMY+1][NUMX+1];
chess* d[NUMY+1][NUMX+1];//一个与f完全相反的结构
int chi[NUMY+1][NUMX+1];
int gui[NUMY+1][NUMX+1];
int tao[NUMY+1][NUMX+1];//量身定做的逃跑路线
int jilu[NUMY+1][NUMX+1];//为记录上一步的g[][]
int key;
int p[NUM+1][NUMY+1][NUMX+1];//记录下棋过程,悔棋用。
int p_h; //存储数组p的当前存储位置
QMenu *menu;
QAction *newAction;
QAction *saveAction;
QAction *loadAction;
QAction *initAction;
int x_1,y_1,x_2,y_2,ta;
int v;
int priority(int );
mypos my[N+1];
int la[N+1][N+1];//棋子之间的关系 他吃他
void taopao( int , int );//我该怎么逃跑
void chizi( int );//吃子
void guize(int);//规则重要的是炮
void pengpeng();
void laole();
int bushu;//记录下棋步数
int l,r;//与三步不出车联系l代表左边的蓝车 r代表右边的蓝车
hui* sbu[N+1];
};
#endif // CHESSBROAD_H