• 3D屏保程序:汉诺塔


          学过程序的人一定记得汉诺塔.我们学的第一个程序是HelloWorld,而碰到的第一个坑就是汉诺塔,短短十几行代码,不知花费了多少时间精力去理解.我记得当年的开发环境还是蓝屏的,汉诺塔程序的输出还是一行行枯燥无趣的字符串.现在重写了这个程序,以三维可视化的方式看下汉诺塔的运行过程.

     

     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, 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, 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:WINDOWSsystem32"
    WIN7,WIN8:将目录下的所有文件拷贝到"C:WINDOWSSysWOW64"或"C:WINDOWSSysWOW32"目录下
    在设置屏保的对话框中,选择"HanoiSP"

    下载地址:

    http://files.cnblogs.com/WhyEngine/Hanoi.rar

  • 相关阅读:
    NFS原理
    linux NFS配置案例
    centos swap分区
    git常用命令
    MHA介绍和基础、原理、架构、工具介绍
    mysql5.7.26部署MHA
    mysql5.7.26 基于GTID的主从复制环境搭建
    MHA监控进程异常退出(MHA版本:0.56)
    mysql 主从 Last_IO_Errno错误代码说明
    mysql 在gtid环境下缺少一部分binlog部署从库
  • 原文地址:https://www.cnblogs.com/WhyEngine/p/3461080.html
Copyright © 2020-2023  润新知