# 算法
本程序的架构借鉴了Spring Boot的设计思想,将块的移动、块相关数据的记录与主界面的相关实现方法分开,便于分段开发,也便于程序的迭代更新。
## 移动算法:
从配置文件读入一个数组,该数组共53个数,第一个数代表已经走过的步数,然后接下来50个数每5个数一组,分别代表每个块的X轴位置,Y轴位置,宽度,高度,名称(1代表张飞,2代表黄忠,3代表关羽,4代表赵云,5代表马超,6代表曹操,7代表卒),最后两个数代表两个空着的块。
考虑到华容道只有四种不同形状的块(长方形块横竖算两种),所以只需要给每种块写一个移动的算法即可。
我们用“层层设防”布局来解释该算法,如下图。
| R1 |R2 |R3 |
|----|----|----|
| R4 |R5 |R6 |
| R7 |R8 |R9 |
| 空 |R10 |空 |
设置一个400* 500的pane,这样一共就只有100* 100,100*200,200*100,200* 200共计四种大小的块。但是在具体算法中,我们还是要以100*100的块为最小单位,并对这个pane划分并编号(如下图)。
| 1 |2 |3 |4 |
|----|----|----|----|
| 5 |6 |7 |8 |
| 9 |10 |11 |12 |
| 13 |14 |15 |16 |
| 17 |18 |19 |20 |
每个块的左上角的坐标代表该块的坐标,如1号块的坐标是(0,0)。这样我们就可以根据坐标来算出某一块的编号。用one,two记录两个空着的块的编号。
然后对鼠标点击的位置进行判断,将每一个不同大小的块分成四个区域(如下图)。
| 1 |2 |
|----|----|
| 3 |4 |
如果点击的是1,返回1,以此类推。
然后对每一种大小的块,写一个函数来判断是否能满足用户的要求,函数传入该块左上角那个100*100块的编号,两个空块的编号和鼠标位置函数的返回值。然后根据块的相互位置来判断是否可以完成移动,如果可以返回一个数字(可以向上返回1,可以向右返回2,可以向下返回3,可以向左返回4),如果不可以则返回0。
最后根据返回值和该块与边界的相对位置来移动块,每次移动100单位长度。
没有合适的资源?快使用搜索试试~ 我知道了~
基于Spring Boot实现的huarongdao2.0算法.zip
共27个文件
java:8个
class:8个
hrd:2个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 95 浏览量
2022-07-14
12:17:32
上传
评论
收藏 42KB ZIP 举报
温馨提示
资源包含文件:设计报告+源码 本程序的架构借鉴了Spring Boot的设计思想,将块的移动、块相关数据的记录与主界面的相关实现方法分开,便于分段开发,也便于程序的迭代更新。从配置文件读入一个数组,该数组共53个数,第一个数代表已经走过的步数,然后接下来50个数每5个数一组,分别代表每个块的X轴位置,Y轴位置,宽度,高度,名称(1代表张飞,2代表黄忠,3代表关羽,4代表赵云,5代表马超,6代表曹操,7代表卒),最后两个数代表两个空着的块。 考虑到华容道只有四种不同形状的块(长方形块横竖算两种),所以只需要给每种块写一个移动的算法即可。 详细介绍参考:https://biyezuopin.blog.csdn.net/article/details/125781746
资源推荐
资源详情
资源评论
收起资源包目录
基于Spring Boot实现的huarongdao2.0算法.zip (27个子文件)
huarongdao2.0算法.docx 14KB
huarongdao2.0
bin
application
IOController.class 2KB
Secand.class 3KB
Third.class 3KB
application.css 101B
Main.class 4KB
MovementController.class 9KB
Choose.class 4KB
PlayerMethon.class 3KB
Vectory.class 2KB
build.fxbuild 304B
state.hrd 1KB
.settings
org.eclipse.jdt.core.prefs 587B
src
application
Secand.java 2KB
PlayerMethon.java 2KB
MovementController.java 11KB
application.css 101B
IOController.java 2KB
Vectory.java 1KB
Main.java 2KB
Third.java 1KB
Choose.java 2KB
.project 554B
.classpath 377B
filegame.hrd 6KB
LICENSE 1KB
README.md 2KB
共 27 条
- 1
资源评论
shejizuopin
- 粉丝: 9897
- 资源: 1288
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功