2010.10.07:
小更新,补充了main.cpp中的注释,源码重新打包上传了
=====================
很老套,又是连连看哈⊙﹏⊙b汗!
我之前有写过一个连连看算法分析的博客,并用JAVA实现了:
http://hexlee.iteye.com/blog/455257
这次因为有需要,重新又接触到了C++,故抱着学习C++的心态,用C++重新实现了这个算法,结果收获还是挺丰盛的:1.发现原来算法实现上的一个数组越界的BUG
2.判断可穿越条件的实现:JAVA中使用了一个接口,C++中使用了一个函数指针
3.学习了C++中的模板的使用
附件有代码打包,C++新手,代码有什么问题,欢迎指出,感激不尽。
文件说明:
Array2D.h //一个二维数组类的简单实现
Position.h //对应JAVA版中的Point,用来记录2D位置的类
LLKPathFinder.h //LLK算法实现器
main.cpp //测试
编译工具:Eclipse for c/c++
下面贴上关键代码:
template<class T> void llk::LLKPathFinder<T>::find(Position p1, Position p2) {
cout << "Finding road!" << endl;
clearStack(pathNodes);//清空
pathNodes.push(p1);
while (true) {
canConnect = _sameLineCheck(p1, p2, *array);//在同一条线上
if (canConnect)
break;
canConnect = _oneCornerCheck(p1, p2, *array);//有一个拐角
if (canConnect)
break;
canConnect = _towCornerCheck(p1, p2, *array);//有两个拐角
break;
}
if (canConnect) {
pathNodes.push(p2);
printStack(pathNodes);
}
return;
}
分享到:
相关推荐
连连看的C语言实现,实现了基本的功能,可以下载来研究下
这是一个模仿QQ连连看的小游戏,从画面到音效都十分相似,想学习QQ游戏的不能错过。
llk.exe
一款java做的小游戏,有eclipse做的
连连看,实现游戏的基本功能,基于opencv编写。游戏有音效,背景音乐,洗牌,暂停,判定连击等功能
用MFC做的连连看,给大家研究下,做的不好的地方大家自己修改
连连看游戏,可消子,两种模式,有计时和重排功能
利用qt编写的连连看,编译通过,算法还不全面,编译通过。适合学习用
llk-source.rar
连连看是一个简单但又拥有众多粉丝的一个小游戏,BONE授权经销商”鼎冠数码“将可爱的BONE造型与深受网民们喜欢的“连连看”小游戏结合起来打造出“连连看”BONE造型专版。 什么是BONE?请参见: ...
FLASH连连看源代码,可以自己制作连连看
连连看游戏设计,最短路径的寻找,判断两个图形是否可消,怎样优化寻路算法。
VC6.0连连看.首次上传源码 也是转载而来 希望能够帮助想要学习的人们
flex做的连连看 做的有点简陋不过学习很好
连连看llk 游戏 掌握widow编程的基本操作
Java.连连看.源代码.打包.代码量2900行
学习Win32有一段时间了,刚好我们有数据结构课程设计这门实验课,所以就做了连连看这款简单的游戏,这也是对相关知识点的巩固吧
android连连看源码 绝对可以用 android连连看源码 绝对可以用android连连看源码 绝对可以用
J2ME手机游戏LLK实例代码J2ME mobile phone games LLK example code