前言
这是数据结构的课设作业,也是我第一次写的千行代码小游戏。
学习EasyX图形库+写完程序一共用了三天时间,可以说是相当熬人了。
当然,第一次写,难免不怎么好,比如无动画、无音乐、丑得不行的ui等等,体验时请多多海涵。
(下载链接见文章末尾)
算法思路
bfs思路:先通过bfs找到胜利局面状态,在过程中记录每个状态的经怎样的操作由上一个状态转换而来(即from);在知道有解后,由胜利状态通过from递归至初始状态,其中经过的状态作为元素压入栈中,输出该栈便得到解法。
优化思路:1、镜像状态可以统统删去,因为只要一种解就行;
2、同类型棋子互换位置为同一局面状态,只记录一次。
小问题:理论上来说,华容道使用bfs求解经过优化1s内绝对可以完成了,但是不知道为什么我写出来的效率很差,最多要经过几秒才能求出,实在是百思不得其解。如果有知道的佬佬请不吝赐教,给跪了orz。
预览与下载
运行图示
百度网盘: 链接:https://pan.baidu.com/s/1Av-bEzbNp9SvSGiSK7nxtA?pwd=rhqp
提取码:rhqp