资源简介
基于QT的用C++编写的中国象棋软件源代码 该代码实现了中国象棋功能,是个C++编写的,文件是源代码,视频教程可以找我单独要
代码片段和文件信息
#include “Board.h“
#include
#include
#include
#define GetRowCol(__row __col __id) \
int __row = _s[__id]._row;\
int __col = _s[__id]._col
Board::Board(QWidget *parent) : Qframe(parent)
{
this->_r = 20;
setMinimumSize(_r*18+1 _r*20+1);
init(true);
}
Board::~Board()
{
}
void Board::init(bool bRedSide)
{
for(int i=0; i<32; ++i)
{
_s[i].init(i);
}
if(bRedSide)
{
for(int i=0; i<32; ++i)
{
_s[i].rotate();
}
}
_selectid = -1;
_bRedTurn = true;
_bSide = bRedSide;
update();
}
void Board::paintEvent(QPaintEvent *)
{
int r = height()/20;
_r = r;
_off = QPoint(r+1 r+1);
QPainter p(this);
p.setRenderHints(QPainter::Antialiasing | QPainter::TextAntialiasing);
p.save();
drawPlate(p);
p.restore();
p.save();
drawPlace(p);
p.restore();
p.save();
drawInitPosition(p);
p.restore();
p.save();
drawStone(p);
p.restore();
}
void Board::drawStone(QPainter &p)
{
for(int i=0; i<32; i++)
{
drawStone(p i);
}
}
bool Board::isDead(int id)
{
if(id == -1)return true;
return _s[id]._dead;
}
void Board::drawStone(QPainter &p int id)
{
if(isDead(id)) return;
QColor color;
if(red(id)) color = Qt::red;
else color = Qt::black;
p.setPen(QPen(QBrush(color) 2));
if(id == _selectid) p.setBrush(Qt::gray);
else p.setBrush(Qt::yellow);
p.drawEllipse(cell(id));
p.setFont(QFont(“system“ _r*1.2 700));
p.drawText(cell(id) name(id) QTextOption(Qt::AlignCenter));
}
QString Board::name(int id)
{
return _s[id].name();
}
bool Board::red(int id)
{
return _s[id]._red;
}
void Board::drawInitPosition(QPainter &p int row int col)
{
QPoint pt = center(row col);
QPoint off = QPoint(_r/6 _r/6);
int len = _r/3;
QPoint ptStart;
QPoint ptEnd;
if(col != 0)
{
/* 左上角 */
ptStart = QPoint(pt.x() - off.x() pt.y() - off.y());
ptEnd = ptStart + QPoint(-len 0);
p.drawLine(ptStart ptEnd);
ptEnd = ptStart + QPoint(0 -len);
p.drawLine(ptStart ptEnd);
/* 左下角 */
ptStart = QPoint(pt.x() - off.x() pt.y() + off.y());
ptEnd = ptStart + QPoint(-len 0);
p.drawLine(ptStart ptEnd);
ptEnd = ptStart + QPoint(0 +len);
p.drawLine(ptStart ptEnd);
}
if(col != 8)
{
/* 右下角 */
ptStart = QPoint(pt.x() + off.x() pt.y() + off.y());
ptEnd = ptStart + QPoint(+len 0);
p.drawLine(ptStart ptEnd);
ptEnd = ptStart + QPoint(0 +len);
p.drawLine(ptStart ptEnd);
/* 右上角 */
ptStart = QPoint(pt.x() + off.x() pt.y() - off.y());
ptEnd = ptStart + QPoint(+len 0);
p.drawLine(ptStart ptEnd);
ptEnd = ptStart + QPoint(0 -len);
p.drawLine(ptStart ptEnd);
}
}
void Board::drawInitPosition(QPainter &
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2018-04-04 17:26 Chinese_cheese\
文件 12075 2016-06-18 12:19 Chinese_cheese\Board.cpp
文件 2525 2016-06-18 12:19 Chinese_cheese\Board.h
文件 375 2016-06-18 12:19 Chinese_cheese\Chinese_cheese.pro
文件 18421 2016-06-18 12:19 Chinese_cheese\Chinese_cheese.pro.user
文件 806 2016-06-18 12:19 Chinese_cheese\ChooseDlg.cpp
文件 327 2016-06-18 12:19 Chinese_cheese\ChooseDlg.h
文件 542 2016-06-18 12:19 Chinese_cheese\CtrlPanel.cpp
文件 299 2016-06-18 12:19 Chinese_cheese\CtrlPanel.h
文件 431 2018-04-04 17:25 Chinese_cheese\main.cpp
文件 1471 2016-06-18 12:19 Chinese_cheese\MainWnd.cpp
文件 295 2016-06-18 12:19 Chinese_cheese\MainWnd.h
文件 114 2016-06-18 12:19 Chinese_cheese\MultiGame.cpp
文件 229 2016-06-18 12:19 Chinese_cheese\MultiGame.h
文件 2035 2016-06-18 12:19 Chinese_cheese\NetGame.cpp
文件 715 2016-06-18 12:19 Chinese_cheese\NetGame.h
文件 4274 2016-06-18 12:19 Chinese_cheese\SingleGame.cpp
文件 585 2016-06-18 12:19 Chinese_cheese\SingleGame.h
文件 91 2016-06-18 12:19 Chinese_cheese\Step.cpp
文件 304 2016-06-18 12:19 Chinese_cheese\Step.h
文件 1735 2018-04-04 17:25 Chinese_cheese\Stone.cpp
文件 392 2018-04-04 17:26 Chinese_cheese\Stone.h
文件 201 2018-04-04 16:38 Chinese_cheese\widget.cpp
文件 273 2018-04-04 16:38 Chinese_cheese\widget.h
文件 441 2018-04-04 16:38 Chinese_cheese\widget.ui
文件 735 2016-09-16 14:00 Chinese_cheese\教程目录及说明.txt
文件 50 2016-03-16 13:01 Chinese_cheese\获取更多相关课程.url
- 上一篇:mfc视图区域嵌入嵌入外部exe(窗口程序)
- 下一篇:理财管理系统 c++代码
相关资源
- 理财管理系统 c++代码
- 格子玻尔兹曼方法计算顶盖驱动流源
- Visual C++数字图像处理技术详解 pdf+源
- MODBUS TCP SERVER 源码
- C++语言版本的DES加解密应用程序源码
- C++ 网络聊天室设计报告及主要源程序
- 空间后方交会C++
- 层次聚类算法C++
- IP地址修改器源码
- BOOTH算法C++实现
- VS2010 C++窗口应用程序窗口之间传递参
- C++项目-图书管理系统
- 马石安编写的VC++程序设计与应用程序
- mfc获取mac地址的小程序
- 基于定步长四阶龙格库塔法的C++弹道
- 电梯仿真.zip
- 循环赛日程表,分治法n=2K,n为任意数
- GPS单点定位完整代码txt版C++,还有r
- 迷宫的生成与自动寻路
- libstdc++.so.6.0.22
- 基于原始套接字实现的PING功能代码
- 流式套接字定长变长接收回射实验报
- C++简易聊天程序C++简易聊天程序
- AES 加解密c++
- 自己用C++实现的RC4算法
- C++实现的BP神经网络算法实现奇偶检验
- Linux环境下的文件安全传输(C/C++)
- SHA-1算法实现源代码
- 本例程采用VC++ 实现JPG格式图片的打开
- c++高仿QQ截图
评论
共有 条评论