- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
推箱子(Sokoban )
Unity 2017经典游戏开发教程:算法分析与实现
《推箱子》游戏介绍
推箱子是一个来自日本的古老游戏,其电子
游戏最早于1981年由 Hiroyuki Imabayashi
编写,并于1982年12月由日本的Thinking
Rabbit公司发行,目的是在训练玩家的逻辑
思考能力。
游戏规则
这个游戏是在一个正方形的棋盘上进行的,
每一个方块表示一个地板或一面墙。地板可
以通过,墙面不可以通过。地板上放置了箱
子,一些地板被标记为存储位置。
玩家被限制在棋盘上,可以水平或垂直地移
动到空的方块上(永远不会穿过墙或箱子)。
箱子不得被推入其他箱子或墙壁,也不能被
拉出。箱子的数量等于存储位置的数量。当
所有的箱子都安放在储藏地点时,游戏胜利。
程序实现要点
地图的生成。
角色的移动。
箱子的移动。
程序实现要点
地图的生成。
角色的移动。
箱子的移动。
程序实现要点-地图的生成
使用二维数组来存储地图信息。每个元素
中用不同的数字来标记不同的对象。0表示
空白,1表示墙,2表示角色,3表示箱子,
9表示终点(9表示终点是为了方便以后加
其他颜色的箱子)
3 9 2 1
程序实现要点-地图的生成
使用二维数组来存储地图信息。每个元素
中用不同的数字来标记不同的对象。0表示
空白,1表示墙,2表示角色,3表示箱子,
9表示终点(9表示终点是为了方便以后加
其他颜色的箱子)
通过遍历地图二维数组,读取每个元素的
数值,根据数值标记生成不同的地图对象。
程序实现要点-地图的生成
使用二维数组来存储地图信息。每个元素
中用不同的数字来标记不同的对象。0表示
空白,1表示墙,2表示角色,3表示箱子,
9表示终点(9表示终点是为了方便以后加
其他颜色的箱子)
通过遍历地图二维数组,读取每个元素的
数值,根据数值标记生成不同的地图对象。
设坐标原点在地图的左上角,向右为横向x
轴正方向,向下为纵向y轴负方向。那么二
维数组map[m][n]的第i行第j列的元素为
map[ i][j],每个方块(tile)的尺寸为1*1,
则对应map[ i][j]在场景中的坐标位置为:
position = ( i,-j)。例如map[1][4]对应
的tile的位置为(1,-4)。同时,该元素的
值为1,那么表示的是墙的方块。
程序实现要点-地图的生成
为程序实现的简便,可以把地图的二维数
组数据映射到一维数组上,便于遍历。
设二维数组为map[m][n],一维数组为
b[m*n],则他们的对应关系为:
b[i*n+j] = map[i][j]。
假设tile的长宽都为1,地图二维数组大小
为9*9,则二维数组中的map[2][1]对应一
维数组中的b[2*9+1] = b[19],也就是说,
对于数组元素b[19] 对应其实际的坐标为
(2,1)。
虽然一维数组对于人来说不是很直观,但
把二维数组转换成一位数组更有利于程序
方便的实现。
因此,在设计地图时用二维数组表示,在
进行程序其他操作,如角色移动时,用一
维数组表示。
程序实现要点
地图的生成。
角色的移动。
箱子的移动。
程序实现要点-角色的移动
流程图
程序实现要点-角色的移动 map[0][0]
b[0]
设地图左上角为原点,即map[0][0],对应一位数组上为b[0]。
那么当角色位于map[ i][j],即一维数组的b[i*9 + j]时,
此处以map
您可能关注的文档
- 乡村治理空间再造和其有效性.PDF
- 南京商业学校《计算机辅助设计—PHOTOSHOP》课程标准.PDF
- 相变传热和流体流动数值分析(第11-14讲).ppt
- 相分离体系中.PDF
- 乔装客户检查计划结果.PDF
- 切换设计和实现.PDF
- 相空间中对称纠缠相干态和其非经典特性鄢.PDF
- 相空间重构中参数确定方法新探讨.PDF
- 亲爱同学们,你们好据权威消息称今后全国高考语文试题.doc
- 南平延平区滨江路景观提升和立面改造工程和南平延平区.doc
- Unit7Happy Birthday!单元语法精炼与写作专练(含答案)人教版(2024)英语七年级上册.docx
- 福建省泉州第一中学2025-2026学年九年级上学期第一次月考语文试题.docx
- 第8课《〈世说新语〉二则》同步练习(含答案) 2025-2026学年统编版语文七年级上册.docx
- 高速事故应急练习题库及答案.docx
- 牛津译林版九年级上册Unit 1 Know yourself知识过关第1讲--词汇(含答案).docx
- 牛津译林版九年级上册Unit 1 Know yourself知识过关第2讲--短语句型(含答案).docx
- 教版(2024)七年级下册Unit1单词巩固(一) 七上第一部分单词复习课件.pptx
- 人教版(2024)七年级下册Unit1单词巩固(二) 七上第二部分单词复习课件.pptx
- 译林版(2024)八年级上册Unit 1 Friendship周末练习作业(含答案).docx
- 化工防腐安全练习题库及答案.docx
最近下载
- 投标服务承诺书(20篇).docx VIP
- 七年级英语第一次月考卷(考试版A4)【测试范围:沪教版五四学制2024 Starter~Unit 1】(上海专用).docx VIP
- 李白按年龄顺序写的诗.docx VIP
- 2025年四川省高考化学试卷真题(含答案解析).docx
- 高频精选:京东快递员ai面试题及答案.doc VIP
- 高频精选:京东快递员ai面试题及答案大全.doc VIP
- 吉林省中药软片炮制规范.pptx VIP
- 名著阅读《湘行散记》七年级语文上册部编版(共9页).docx VIP
- 《白洋淀纪事》阅读测试题含答案(推荐).docx VIP
- 必考名著《白洋淀纪事》导读+知识点汇总.pdf VIP
文档评论(0)