哈哈哈哈哈哈,诸位欣赏下我做的象棋程序
戮仙吧
全部回复
仅看楼主
level 7
lanyu6025 楼主
怎么上图啊
2015年05月04日 09点05分 1
level 13
骗人
2015年05月04日 09点05分 2
不骗你,手机网页版没好到上图的
2015年05月05日 01点05分
level 12
好几天没升级经验了,我是该水水了,来膜拜吧。
2015年05月04日 09点05分 3
level 7
lanyu6025 楼主
为了证明我没有骗人,本来上图是最好的,还是简单说一下好,懂程序的应该懂。
2015年05月05日 01点05分 4
level 11
碰上直播了,我来学习[呵呵]
2015年05月05日 01点05分 5
level 7
lanyu6025 楼主
象棋程序的大概原理,是基于视图view,场景scene,项或者单元item制作的。棋子是一种项,棋盘是一个项。使用c++控制台程序进行mian调用。
2015年05月05日 02点05分 6
我室友写了一个坦克大战的程序[真棒][真棒][真棒]
2015年05月05日 02点05分
level 7
lanyu6025 楼主
开发平台qt(一种优秀的界面制作程序可视化开发平台),开发语言c++
2015年05月05日 02点05分 7
level 10
[委屈][委屈]楼主大才,渣渣只会用django做个破网页
2015年05月05日 02点05分 8
level 12
东西
2015年05月05日 02点05分 9
level 13
程序都会写还不会上图,你不是水货我都不信
2015年05月05日 02点05分 10
我在用手机网页版,真没找到
2015年05月05日 02点05分
level 7
lanyu6025 楼主
象棋黑红棋共32子,每子除了id(身份唯一标示)以为全部相同,0到31。前16子固定为黑子,后16子为红子。棋子项中,用二维paint函数根据id号绘制棋子,重载boundingRect函数设置棋子范围(选取用)
2015年05月05日 02点05分 11
level 7
lanyu6025 楼主
棋子基于QGraphicsItem基类派生qizi类,设有共有函数setcolor,吞子合法性判断函数dataprocess 其中参数为被吞子和吞子,x坐标设置setx,y坐标设置sety.
2015年05月05日 02点05分 12
level 7
lanyu6025 楼主
棋子x,y 坐标提取函数getx,gety。共有变量id,backgroundcolor,后者为棋子背景颜色变量,私有变量棋子画笔颜色pencolor,棋子内部计数器count,私有坐标m_x,m_y
2015年05月05日 02点05分 13
level 7
lanyu6025 楼主
棋盘类派生自qgraphicsitem 基类,重载boundingrect包容框函数,重载paint 绘制棋盘(网格线等等),棋盘中棋子移动合法性判断函数qipan process,参数选取的qizi变量,落点位置minx,miny
2015年05月05日 02点05分 15
level 13
QQ游戏象棋选手水平太差,真正的高手都在联众 我是联众 二级大师 有空可以切磋下
2015年05月05日 02点05分 16
level 7
lanyu6025 楼主
程序核心程序qizi::mouse press event实现过程如下:
1,调用setcursor,设置点击鼠标样式为closehandcursor
2,强制转化,把本地指针this转换为qizi型node变量
3,如果有棋子已经被选中,判断标示符overflag是否为真,为真则执行以下过程:foreach遍历所有棋子,找出吞子,调用dataprocess判断吞子过程合法性,如果合法则执行移除被吞子,吞子位置更新过程。
4,计数器count加1,计数点击次数。如果count=2,则说明本次点击为选中棋子,让棋子背景backgroundcolor为绿色,overflag置真。否则,说明本次点击是取消选中,棋子背景色为白,overflag置假
5,update()刷新界面
2015年05月05日 02点05分 18
level 7
lanyu6025 楼主
至此难点几乎没有,出问题也只是少许细节,调试找bug修复即可。此程序的难点在于,想清楚各处关节,对项的理解,对过程的分析和理解。纯手打,各位有兴趣可以按步骤编一下。
2015年05月05日 02点05分 20
level 13
发错吧了吧。。
   --天琊剑倚孤月 翩然饮风清
  
2015年05月05日 03点05分 21
level 11
卡吧或者技术宅吧更适合你
2015年05月05日 03点05分 22
⊙0⊙没什么啊
2015年05月05日 08点05分
1