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

news/2024/11/22 20:07:51/

前言

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

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

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

(下载链接见文章末尾)

算法思路

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

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

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

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

预览与下载

                                                               运行图示

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

 


http://www.ppmy.cn/news/550165.html

相关文章

Java实现——华容道数字小游戏

华容道数字 文件创建 实现代码 App.java package com.Allen.Stone;import javax.swing.*;public class App {public static void main(String[] args) {MainJFrame mainJFramenew MainJFrame();} }MainJFrame package com.Allen.Stone;import javax.swing.*; import java.a…

吴恩达深度学习第二周作业

1 .导入库 import numpy as np import matplotlib.pyplot as plt import h5py from lr_utils import load_dataset 2.lr_utils.py代码里的东西 import numpy as np import h5py def load_dataset(): #取训练集 train_dataseth5py.File(‘datasets/train_catvnoncat.h5’,“…

C语言自制华容道游戏代码

程序简介 华容道,画风参考的是手机程序:超级华容道。玩法是将大块移动至下层的中间。随机盘面,难度适中,自动解题。 程序随机了横块纵块数量,所以会有无解或难解,生成函数保证了加载出来的盘面是可玩的&a…

用scratch编写游戏-数字华容道(不移动块法)

前边已写了两篇博客介绍用scratch编写“数字华容道”游戏的方法。在以前设计中有一个误区,认为只有通过移动带数字的块才能完成数字的重新排列。实际上采用克隆法,角色“带数字的块”有25个造型,包括24个数字(1到24)和一个空白造型。其克隆体…

游戏数字华容道的改进

在“用scratch编写游戏-数字华容道”(以后简称“前文”)一文中仅介绍了3行3列数字块的设计方法。本文介绍克隆法,该法在设计更多行和列的数字华容道时,使所有数字块都使用相同的脚本,极大减少了工作量。两方法采用的数据结构基本相同。首先给…

用scratch编写游戏-数字华容道

由于疫情,只能在家,外孙女要学scratch,先学了南海出版社的“编程真好玩”,然后和外孙女一起用scratch编了一些游戏,想把编写步骤和设计思想写出来,和大家交流。刚编了“数字华容道”,就先说它吧…

NOIP2013华容道

NOIP2014华容道 说起来这道题还挺有难度的,我用了两个小时才把它AC,要是在赛场上的话。。。。这种题就果断放弃了 下面步入正题 题目描述 Description 小 B 最近迷上了华容道,可是他总是要花很长的时间才能完成一次。于是,他想到…

CreateJS实现【益智类数字华容道小游戏】

系列文章 微信小程序(游戏)----拖拽拼图(图片分块和打乱顺序)微信小程序(游戏)----五子棋【taro react】(游戏) ---- 类2048游戏,看看在秦朝,功勋爵位你能到哪一级【taro react】(游戏) ---- 小游戏 2048 的实现1. 预览 1.1 在线h5 益智类数字华容道小游戏 在线h5 益…