本文只展示部分代码,仅仅介绍思路
象棋蛮好玩的,但是某些象棋推行健康系统是真的…,有些网站容易崩,所以我想自己搞一个来玩。
0.效果

1.绘制背景
void GameMainWindow::drawBackground(QPainter& painter)
{
{
// draw line ——
for (int i = 0; i < 10; ++i) {
painter.drawLine(left_distance,
top_distance + i * gird_height,
left_distance + 8 * gird_width,
top_distance + i * gird_height);
}
}
{
// draw line |
painter.drawLine(left_distance,
top_distance,
left_distance,
top_distance + 9 * gird_height);
painter.drawLine(default_width - left_distance,
top_distance,
default_width - left_distance,
top_distance + 9 * gird_height);
for (int i = 1; i < 8; ++i) {
painter.drawLine(left_distance + i * gird_width,
top_distance,
left_distance + i * gird_width,
top_distance + 4 * gird_height);
painter.drawLine(left_distance + i * gird_width,
top_distance + 5 * gird_height,
left_distance + i * gird_width,
top_distance + 9 * gird_height);
}
}
{
// draw text
auto pen = painter.pen();
auto font = painter.font();
QFont f;
f.setPointSize(28);
f.setFamily(tr("华文新魏"));
painter.setPen(Qt::black);
painter.setFont(f);
painter.drawText(left_distance + gird_width / 4,
top_distance + (9 * gird_height) / 2 + gird_height / 8,
tr
使用Qt实现C++象棋程序的设计思路

本文介绍了如何使用C++和Qt框架来创建一个象棋游戏。首先展示了程序的效果,接着详细讲述了绘制背景的过程,包括设置棋盘间距和绘制棋盘线条。文章提到了采用工厂模式来加载不同类型的棋子,并且利用继承自Chess类的棋子子类,通过重写特定方法实现棋子的绘制。最后,讨论了如何通过工厂函数动态生成棋子并结合Qt的内存管理进行绘制。
最低0.47元/天 解锁文章
1391

被折叠的 条评论
为什么被折叠?



