QT象棋练习(2)-象棋整体框架

整体的文件框架,如下图所示, 

运行时,如下图: 

                                                               

 

选择人机对战:

                

选择网络对战,在这可以同时运行两次,先运行服务器端。 

 

代码分析

main.cpp主函数(入口)

ChooseDlg dlg;  //对话框

即弹出的几个选项。在choosedlg.cpp中实现。

                                        

choosedlg.cpp  选项

ChooseDlg::ChooseDlg(QWidget *parent) : QDialog(parent)
{
    QVBoxLayout* lay = new QVBoxLayout(this);
    lay->addWidget(_buttons[0] = new QPushButton("人机对战"));
    lay->addWidget(_buttons[1] = new QPushButton("人人对战"));
    lay->addWidget(_buttons[2] = new QPushButton("网络对战(服务端)"));
    lay->addWidget(_buttons[3] = new QPushButton("网络对战(客户端)"));

    for(int i=0; i<4; ++i)
    {
        connect(_buttons[i], SIGNAL(clicked()), this, SLOT(slotClicked()));
    }
}

mainwnd.cpp 选项实现

此函数,当点击不同按钮时,传入不同参数,用以选择不同情境下的对战。


MultiGame.cpp

多人游戏。

singlegame.cpp

单人游戏,即人机对战。

netgame.cpp

网络游戏。

board.cpp

棋类,创建棋盘,记录走棋的信息,游戏规则等信息。

stone.cpp

棋子类,关于棋子坐标,类型即什么棋子,颜色等。

step.cpp

关于棋子走的记录,主要用于悔棋。在人工智能走的时候记录最优走法。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值