借数据结构课程设计的机会,和几个小伙伴完成了一次小项目的开发。开发项目与算法竞赛还是有很大的区别,四个小白在开发过程中也是一边碰壁一边学习,跌跌撞撞,最终完成了课设。作为队长的我在整个开发过程中做的还不够好,故写此博客,用于记录和反思。
2020.12.28-2021.1.13,四人团队历时两个多星期,顺利完成了数据结构课程设计。我们的选题是:基于A*算法的迷宫寻路游戏,课题的要求是实现迷宫游戏功能和不同寻路算法的演示功能。
第一天我们在一起研究课题,确定了游戏开发的大方向,进行了粗略的任务分工。我负责寻路算法的实现,另一位队友负责迷宫地图的生成,其余两位队友负责游戏的可视化和人机交互。由于是第一次做项目,缺乏经验,作为队长的我没有对系统进行深入分析,胡乱制定了一个“先做,不好再改”的策略,导致后面项目的开发做了很多无用功。开发项目前做好系统分析还是十分重要的,不然就像造房子不用图纸一样,开发过程中我们进行了多次的返工,浪费了许多时间。
完成初步的项目框架后就到了元旦,秉着健康工作,拒绝996的信念,项目开发暂缓,这也成为了我们第一次开发就开发了一年的“大”项目。节后就是继续项目的打磨和完善,期间大家的点子层出不穷,游戏界面也改了又改。代码的不断修改也造成了一个在算法竞赛中不可能遇到的问题——版本管理。开发项目前也想过学习git,但是粗略了解后觉得学习成本有点高,为了这一个小项目去学习的性价比不高就放弃了。结果就是,每次改了一个小需求,代码合并时报错的几率就大了一分(因为可能每个人本地的代码版本不同,有些函数修改过就会对不上),然后就是一边哀嚎“github它不香吗”,一边苦命改bug。
最后课程设计还是有惊无险地完成了,也算没有辜负老师的期望。我一共写了DFS、BFS、A三种寻路方法,看到在它们的帮助下方块自动从起点走到了终点的体验真的很奇妙,真的是难以用言语去表达的感受(A算法学习及寻路功能的实现笔记)。同时,这次的课设也更让我体会到了算法学习的重要性,无悔入acm!最后,向三位队友表示感谢: zxr,llz,dx 。
部分游戏画面:
游戏设置页面:
四种随机生成的地图:
三种寻路算法在四种地图中运行的效果:
创新的冒险模式:
哦豁
请问图形界面是用什么开发的?OpenGL?
搜一下easyx,一个民间的图形界面,学习成本稍微低一点
你好,可以分享一下源代码吗?想学习一下😘
团队项目,不太方便~
23级ACM学弟前来膜拜,数据结构课设也分到了这个,还好寒假乱点科技树学了A*解决K短路问题,但是还是无从下手,%%%
加油加油