跳转至

第一阶段-跳棋底层逻辑实现

1.已实现成果

  • 基础图形
  • 两人,四人,六人跳棋本地对战
  • 基础跳棋逻辑(行棋,判断行棋条件,回合交接)
  • 胜利判断

2.实现方式

  1. 棋子的创建
    首先建立一个自定义mybutton类,继承QPushbutton类,每个mybutton即为跳棋中棋子可落点,如果该点处有棋子,则将该mybutton绘制相应颜色即可。该类具有一系列变量,如int 型的color(颜色参数),x0y0(原直角坐标系坐标),j(判断该位置上是否有棋子)等,float 型的xy(在mywidget上的坐标参数)。
  2. 棋盘的实现
    建立自定义窗口类mywidget,继承QWidget类。该类包括mybutton的18*18的二维数组,运用高等代数的坐标变换知识将需要的mybutton部署在mywidget的ui上,不需要的隐藏即可。以上操作均有mywidget类的成员函数start()在程序开始时执行。
  3. 行棋逻辑
    每点击一个mybutton(不论该点有无棋子),都会发送一个自定义信号,将该点的x0和y0属性传递至mywidget,并利用两个int型全局变量a和b保存,再点击下一个mybutton,如果上次点击无棋子,则重置全局变量a、b;如果上一次点击处有棋子,则进入行棋合法性判断函数check(int,int),如果行棋合法,则进入跳跃函数jump(int,int),实现棋子跳跃。
  4. 回合交接
    不同游戏模式设置不同的int型全局变量form,再设置一个全局变量round,初始化为1。每次执行jump函数后,round加一,每个round对应一个阵营,每次行棋时只有对应此时round的阵营可以行棋。以此实现简单的回合交接。

3.待实现功能

  1. 联机功能
  2. 托管功能(AI)
  3. 贴图美化界面