# 241003661121-虞凯文-马的棋盘遍历 **Repository Path**: kevin_6366/c-course-design ## Basic Information - **Project Name**: 241003661121-虞凯文-马的棋盘遍历 - **Description**: 虞凯文的高级语言程序设计课程设计,包含课程论文,代码实现与所有相关文件 - **Primary Language**: C++ - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-02-23 - **Last Updated**: 2025-03-25 ## Categories & Tags **Categories**: Uncategorized **Tags**: Python, Cpp ## README # 高级语言程序设计课程设计 ## 课题亮点: - 1.本课题托管在远程仓库上,并且全程使用 **git** 进行版本管理与跨平台研发 - 2.本课题核心代码使用 **cpp** 进行编写,语法更加简练,并且使用了 **stl容器** - 3.本课题两个核心算法全都配套了 **python** 来进行 **可视化动画演示** ,具体介绍可见下** ## 介绍 - 📂本项目包含回溯算法与启发式贪心算法的完整实现,配套可视化演示与课程论文,探讨骑士周游问题的求解策略。 ## ⚙️ 算法主体 ### 1. 回溯算法实现 - 基于栈的非递归实现 - 逐步回溯机制 - 支持任意棋盘尺寸 (n×m) - 时间复杂度:O(8^(n²)) - **建议棋盘大小控制在7x7以内,否则因为时间复杂度过高而卡死** ### 2. Warnsdorff启发式算法 - 采用贪心策略选择下一步 - 动态计算位置"度数"(可行方向数) - 优先访问低度数格子 - 时间复杂度:O(n²) ## 🎥 可视化演示系统 ### 1. 回溯算法动态演示 - 逐步动画展示前进/回溯决策过程 - 四色编码系统: - 🟩 浅绿:有效路径 - 🟦 蓝色箭头:移动方向 - 🟥 红色叉号:回溯撤销步骤 - 🟧 橙色:最近访问位置 - 交互式控制:可设置最大演示步数 - **不建议在大棋盘下进行过多步数的演示** ### 2. 贪心算法首步决策 - 动态生成第一格遍历候选方向评估图 - 三要素标注: - 🔴 红色箭头:最优选择方向 - 🔢 方向编号与后续可行步数 - 📍 起始位置特殊标记 - 决策逻辑可视化:展示Warnsdorff规则的度数计算过程 ## 安装教程 - cpp代码使用devc++等主流的编译器都可进行演示,python的话本人使用Anaconda环境进行编写的,如果不是的话可能需要安装一下 **matplotlib** 与 **numpy库** ``` pip install matplotlib numpy ``` ### 使用说明 - 建议可以先从课程论文看起,然后进行代码复现验证,在本人的多组数据验证下代码是没有任何问题的。 ## 改进建议 欢迎通过以下方式提出改进意见: - Email: kevin20060818@163.com - QQ:3390213203 - 远程仓库:https://gitee.com/kevin_6366/c-course-design