3D屏保程序:汉诺塔
2016-07-29 00:00
344 查看
学过程序的人一定记得汉诺塔.我们学的第一个程序是HelloWorld,而碰到的第一个坑就是汉诺塔,短短十几行代码,不知花费了多少时间精力去理解.我记得当年的开发环境还是蓝屏的,汉诺塔程序的输出还是一行行枯燥无趣的字符串.现在重写了这个程序,以三维可视化的方式看下汉诺塔的运行过程.
游戏说明:
"HanoiSP.scr"全屏可执行程序
"Hanoi.exe"窗口可执行程序
鼠标左键右键拖动,调节视角.
鼠标滚轮,调节摄像机的远近.
X,恢复为默认视角并停止视角旋转.
空格,P,暂停与恢复.
ESC,退出.
R,汉诺塔重新开始.
[,- 减少汉诺塔层数.最小为2
],= 增加汉诺塔层数.最多为25
屏保设置方式
XP:将目录下的所有文件拷贝到WINDOWS系统目录下如"C:\WINDOWS\system32"
WIN7,WIN8:将目录下的所有文件拷贝到"C:\WINDOWS\SysWOW64"或"C:\WINDOWS\SysWOW32"目录下
在设置屏保的对话框中,选择"HanoiSP"
下载地址:
http://files.cnblogs.com/WhyEngine/Hanoi.rar
1 void hanoi(char src, char mid, char dst, Yuint stacks, Ychar* pMoveSteps, Yuint& index) 2 { 3 if (stacks == 1) 4 { 5 Ychar& value = pMoveSteps[index]; 6 value = (src<<4) + dst; 7 //printf("Move disk %d from %c to %c\n", n, src, dst); 8 index++; 9 } 10 else 11 { 12 hanoi(src, dst, mid, stacks - 1, pMoveSteps, index); 13 Ychar& value = pMoveSteps[index]; 14 value = (src<<4) + dst; 15 index++; 16 //printf("Move disk %d from %c to %c\n", n, src, dst); 17 hanoi(mid, src, dst, stacks - 1, pMoveSteps, index); 18 } 19 }
游戏说明:
"HanoiSP.scr"全屏可执行程序
"Hanoi.exe"窗口可执行程序
鼠标左键右键拖动,调节视角.
鼠标滚轮,调节摄像机的远近.
X,恢复为默认视角并停止视角旋转.
空格,P,暂停与恢复.
ESC,退出.
R,汉诺塔重新开始.
[,- 减少汉诺塔层数.最小为2
],= 增加汉诺塔层数.最多为25
屏保设置方式
XP:将目录下的所有文件拷贝到WINDOWS系统目录下如"C:\WINDOWS\system32"
WIN7,WIN8:将目录下的所有文件拷贝到"C:\WINDOWS\SysWOW64"或"C:\WINDOWS\SysWOW32"目录下
在设置屏保的对话框中,选择"HanoiSP"
下载地址:
http://files.cnblogs.com/WhyEngine/Hanoi.rar
相关文章推荐
- 游戏:极速切方块
- 我所遭遇过的中间件--3D MAX SDK
- [LintCode] 拓扑排序
- 数学图形(1.3)旋轮线
- 第3部分:依赖注入DI
- 游戏:掐泡泡
- 博客开张啦
- [算法专题] 深度优先搜索&回溯剪枝
- [16] 螺旋面(Spire)图形的生成算法
- Java并发与多线程教程(2)
- 混沌数学之Henon吸引子
- 计算直方图中面积最大的矩形
- dbm数据库源代码分析(6):bucket.c
- Nginx:配置指南(2)
- 数学图形(1.19)Doppler spiral螺线
- 使用ipmi管理服务器
- 屏保:三角形
- 23种设计模式分析(1):创建型模式
- 开源软件许可协议介绍
- 火火火---12幅算法生成火的图像