如何用Java编写推箱子小游戏程序?
- 内容介绍
- 文章标签
- 相关推荐
本文共计4339个文字,预计阅读时间需要18分钟。
原文示例:本文实例为大家分享了Java实现推箱子游戏的整体代码,供大家参考。具体内容如下:+ 运行示例:+ 图形界面由Swing组件构成+ 生成地图的算法如下:+ 创建地图算法(produceMap):+ 先将二维数组全部置为“
简化后:本文展示了Java推箱子游戏代码,供参考。内容涵盖:+ 运行示例:+ 使用Swing构建图形界面+ 地图生成算法:+ 创建地图算法:先将二维数组全置为“
本文实例为大家分享了java实现推箱子游戏的具体代码,供大家参考,具体内容如下
运行示例:
图形界面由swing组件构成
生成地图的算法如下
创建地图算法(produceMap):先将二维数组全置为1,代表初始状态全为墙。先随机产生两个不重合的点,一个作为人的起点,另一个作为箱子的起点。从起点开始,随机朝四个方向走一定的步数,若走到的点不是空地,即对应数组元素不为0,则将该点设为空地,即数组元素设为0。将地图分为左上、左下、右上和右下四个区域,并设置四个变量记录四个区域已开辟空地的数量。每开辟一块空地,代表该空地所在区域的变量加1。走完规定的步数后,在四个区域中找到开辟空地数量最小的区域,在该区域内随机产生一个点,以该点作为起点循环执行上述操作,直到开辟的空地的总数大于地图总面积的一半,创建完成。
解决地图算法(solveMap):创建一个状态类,将箱子的一个位置和在搜索这个箱子的过程中人的一个位置以及箱子走到这个位置的步数表示为一个状态。建立一个优先队列,队列元素为状态类的对象,步数小的状态的优先级高。从起点开始按照上下左右的顺序进行广度优先搜索。建立一个HashMap,键为状态类,值为布尔类,用来保存每个状态的是否被走过,再建立一个HashMap,键为点类,值也为点类,保存箱子的每一个位置的前一个位置,用于最后输出路径。
本文共计4339个文字,预计阅读时间需要18分钟。
原文示例:本文实例为大家分享了Java实现推箱子游戏的整体代码,供大家参考。具体内容如下:+ 运行示例:+ 图形界面由Swing组件构成+ 生成地图的算法如下:+ 创建地图算法(produceMap):+ 先将二维数组全部置为“
简化后:本文展示了Java推箱子游戏代码,供参考。内容涵盖:+ 运行示例:+ 使用Swing构建图形界面+ 地图生成算法:+ 创建地图算法:先将二维数组全置为“
本文实例为大家分享了java实现推箱子游戏的具体代码,供大家参考,具体内容如下
运行示例:
图形界面由swing组件构成
生成地图的算法如下
创建地图算法(produceMap):先将二维数组全置为1,代表初始状态全为墙。先随机产生两个不重合的点,一个作为人的起点,另一个作为箱子的起点。从起点开始,随机朝四个方向走一定的步数,若走到的点不是空地,即对应数组元素不为0,则将该点设为空地,即数组元素设为0。将地图分为左上、左下、右上和右下四个区域,并设置四个变量记录四个区域已开辟空地的数量。每开辟一块空地,代表该空地所在区域的变量加1。走完规定的步数后,在四个区域中找到开辟空地数量最小的区域,在该区域内随机产生一个点,以该点作为起点循环执行上述操作,直到开辟的空地的总数大于地图总面积的一半,创建完成。
解决地图算法(solveMap):创建一个状态类,将箱子的一个位置和在搜索这个箱子的过程中人的一个位置以及箱子走到这个位置的步数表示为一个状态。建立一个优先队列,队列元素为状态类的对象,步数小的状态的优先级高。从起点开始按照上下左右的顺序进行广度优先搜索。建立一个HashMap,键为状态类,值为布尔类,用来保存每个状态的是否被走过,再建立一个HashMap,键为点类,值也为点类,保存箱子的每一个位置的前一个位置,用于最后输出路径。

