经典华容道游戏(含bfs求解)

前言

这是数据结构的课设作业,也是我第一次写的千行代码小游戏。

学习EasyX图形库+写完程序一共用了三天时间,可以说是相当熬人了。

当然,第一次写,难免不怎么好,比如无动画、无音乐、丑得不行的ui等等,体验时请多多海涵。

(下载链接见文章末尾)

算法思路

bfs思路:先通过bfs找到胜利局面状态,在过程中记录每个状态的经怎样的操作由上一个状态转换而来(即from);在知道有解后,由胜利状态通过from递归至初始状态,其中经过的状态作为元素压入栈中,输出该栈便得到解法。

优化思路:1、镜像状态可以统统删去,因为只要一种解就行;

                  2、同类型棋子互换位置为同一局面状态,只记录一次。

小问题:理论上来说,华容道使用bfs求解经过优化1s内绝对可以完成了,但是不知道为什么我写出来的效率很差,最多要经过几秒才能求出,实在是百思不得其解。如果有知道的佬佬请不吝赐教,给跪了orz。

预览与下载

                                                               运行图示

百度网盘: 链接:https://pan.baidu.com/s/1Av-bEzbNp9SvSGiSK7nxtA?pwd=rhqp 
提取码:rhqp

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/1620972.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

206. 反转链表 (简单系列)

给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。 示例 1: 输入:head [1,2,3,4,5] 输出:[5,4,3,2,1] 示例 2: 输入:head [1,2] 输出:[2,1] 示例 3: 输…

DebugInfo 模块功能系统介绍 文本上色 文本与表格对齐 分隔线 秒表计算器 语义日期

背景 今天系统性的为大家介绍一下 DebugInfo 模块。这个模块提供了一些丰富的基本功能的封装,希望能给有需要的人带来些许帮助。 文本上色 DebugInfo 模块引入了 colorama提供文本颜色支持。 # -*- coding:UTF-8 -*-# region 引入必要依赖 from DebugInfo.DebugI…

数字时钟器

数字时钟器 一、实现功能: 实现基本的时钟样式实现时间日期的文本显示实现仿真秒针走动时候的音效支持设置时间,点击时钟中间设置时间,点击边缘恢复系统时间。 二、效果截屏: 三、github源码地址 GitHub - LxNoMi/DigitalClock…

FPGA数字时钟

FPGA数字时钟1 本代码借鉴了一些,网上资源。 1.设计目的 (1)掌握数字电子钟的设计方法; (2)掌握常用数字集成电路的功能和使用; (3)巩固数字电路理论知识,掌握…

HSP高度敏感的人应该了解的内容(附图书资源)

推荐图书:《高敏感是种天赋》 在爆炸的信息海中希望你慢慢看,细细品~ 什么是高敏感人群? (Highly Sensitive Person,简称HSP)是指那些对外界刺激和情绪变化非常敏感,容易受到情绪的影响,并且需…

基于Arduino的多功能数字时钟

实现功能: 显示时间、日期和星期断电保存时间通过按钮设置时间、日期整点响铃自定义闹钟显示温度自定义报警温度按键功能:按选择键进入设置时间功能;同时按 - 键进入闹钟和报警温度设置功能;再按选择键光标跳动,光标…

【Proteus】多功能数字时钟设计

ZQQQ 2021.12.27 课设一:各芯片引脚介绍:1:数码管:[^1]2:CD4511(译码显示):[^2]3:CD4518(计数器)[^3]3:555定时器4:CD4011和CD4012 二:各部分电路图搭建1:校正时间电路2:整点报时电路3:分频电路4:进制电路 课设 我们将该电路分为几个部分: 1:显示电路(用6个共阴数码管来显示) 2…

单片机:数字式时钟—日历

单片机:数字式时钟—日历 功能要求: (1)显示时分秒,年月日 (2)具有:启动(按下此键后单片机才开始工作)、暂停、继续、清零、设置时间/年月日/闹钟的功能 &am…

Quartus ii 13.1 数字时钟

内容摘要: 使用计数器和数据选择器等器件实现数字时钟电路。电路最终在开发板上显示的是时钟的秒和分(开发板所限,当然如果开发板支持8位显示的话也可以自己加到小时位的显示)。电路包四个部分:时钟信号分频电路&#…

FPGA-Verilog多功能数字时钟

一.数字时钟设计 1.硬件资源:共阴极数码管一块,FPGA开发板一块(EP4CE40F23C8); 2. 开发板资源:3颗独立按键,数码管接口; 3. 功能设计:三种功能&#xff1a…

【Java】Java数字时钟

应用名称:Java数字时钟 用到的知识:Java GUI编程,线程 开发环境:win8eclipsejdk1.8 功能说明:可以显示当前系统的年月日、星期以及准确时间,并实时更新显示。 效果图: 源代码: i…

51单片机入门——(新)简易数字时钟

文章目录 设计要求原理图按键部分介绍 代码解析 设计要求 实现正确稳定地显示小时(两位数)、分钟(两位数)、秒钟(两位数),同时数码管应无闪烁问题。通过按键分别实现时、分信息的调整,方便用户对时间的校准。加入闹铃功能在(本设计中用LED代…

基于FPGA的数字时钟verilog开发

目录 一、理论基础 二、案例背景 1.问题描述 2.思路流程 三、verilog核心仿真 四、仿真结论分析 五、参考文献 一、理论基础 整个程序分为以下三大部分: 时钟控制部分,分为调整分,秒功能,秒清零功能; 暂停功…

51单片机数字时钟

我们学单片机,一般都会写数字时钟编程。它能帮助我们: a. 能够系统性地总结掌握的知识,将单元模块知识有机的结合在一起。 b. 能够充分协调好硬件与软件之间的相互结合,合理设计硬件电路。 c&#xff0…

多功能数字时钟(VHDL)

文章目录 一、课程设计内容二、实验方案分析与设计1.功能要求2.各个模块描述 三、具体实现过程描述1、小时计时2、分计时3、秒计时4、闹钟小时计时5、闹钟分计时6、闹钟比较模块7、控制器模块(设置状态转换)8、控制显示模块(显示时间以及校时…

基于FPGA的简易数字时钟

基于FPGA的可显示数字时钟,设计思路为自底向上,包括三个子模块:时钟模块,进制转换模块,led显示模块。所用到的FPGA晶振频率为50Mhz,首先利用它得到1hz的时钟然后然后得到时钟模块,把时钟模块输出…

数字逻辑之数字时钟课程设计(含proteus仿真图及代码)

一、设计要求 1、设计一个能显示日期、小时、分钟、秒的数字电子钟,并具有整点报时的功能。  2、可手动校正时、分时间和日期值,时间以24小时为一个周期,有校时功能,可以分别对时及分进行单独校时,使其校正到标准时间…

数电实验:数字时钟设计 (经验分享,仅供参考)

实 验 目 的 一、独立完成一个数字小系统的设计 二、基于实验箱对设计进行验证 实验内容: 能够显示时、分、秒共6位数字; 考虑使用实验箱时钟(频率包括1M、500K、 250K、100K、10K、1K等); 考虑使用实验箱数码管输出接口。 …

数据结构】二叉树篇|超清晰图解和详解:后序篇

博主简介:努力学习的22级计算机科学与技术本科生一枚🌸博主主页: 是瑶瑶子啦每日一言🌼: 你不能要求一片海洋,没有风暴,那不是海洋,是泥塘——毕淑敏 目录 一、核心二、题目 一、核心 我们清楚…

Yandex SEO和Google SEO有啥区别?5000字说必须要了解的一些事儿

最近筋斗云SEO服务有做一些俄罗斯市场的SEO,而做俄罗斯的SEO相当于就是要做Yandex的SEO。对比Google的SEO优化,其实有比较多的区别,但总体算法、逻辑等等都大致相似。本文从Linus自己的研究和搜集的公开信息,对比一下Google和Yand…