概述:为提升在实际项目中的“编程”与“设计”能力,为“三年之期限”打下基础,我决定手撕一个简单的棋牌游戏。军棋是我比较喜欢的一个,从开始前的布局到开始对局涉及两种完全不同的逻辑。我可以用自己的理解将他们分解,然后每天拿出一点时间制作。选用VS+Qt开发,毕竟我贫瘠的知识中最熟悉那个的只剩下C++了。总之,如果能顺利完成整个工程,就算是一个能看的经历,这于我大有裨益。在这里开贴记录每个阶段进展吧。
20240903:完成了棋盘,选用drawLine而不是现成的图片。这有很多的好处。
20240904:完成了双方棋子,仍选用了painter的绘制功能。
20240905:完成了我方棋子布局交换。包含棋子位置合法性检测。
20240908:他奶奶的大好六日加了两天班,仅剩的晚上完成走棋规则0:地雷不可移动
20240909:先进行铁路的判断,from A to B, 检测A和B是否能通过铁路连接。如果是,则判断铁路中间有没有阻挡的子。如果是工兵的话,还需要检测能否拐弯绕过。这应该是数学里计算几何的知识,可惜没系统学过只能暂时手动用笨方法一个个排除了,真的是年少不知数学好,错吧工科当作宝啊!
20240918:1)修复了超越边界的bug ,2)建立了map,基本铁路移动实现
20240919:完成了所有公路移动的判定。行营斜线的移动用了取巧的方法,坐标和为奇数就可以移动,否则不能。下一步:吃子移动、行营无敌判定
20240920:完成行营有子不可侵入的判定.只剩工兵拐弯逻辑.
20240924:使用BFS算法完成了工兵是否能移动的判断。还差移动路径动画、比大小、回合切换
20240925:路径动画失败了,因为山界的存在,我的显示坐标并不是点的实际坐标。下面先做回合切换。最近要搬家,再延长半个月做完吧。
20240928:国庆安排几个活,搬家和一些制作内容,Qt军棋暂时搁置。