任务五十二:王牌特工

面向人群:
有一定的JavaScript基础
难度:

重要说明

百度前端技术学院的课程任务是由百度前端工程师专为对前端不同掌握程度的同学设计。我们尽力保证课程内容的质量以及学习难度的合理性,但即使如此,真正决定课程效果的,还是你的每一次思考和实践。

课程多数题目的解决方案都不是唯一的,这和我们在实际工作中的情况也是一致的。因此,我们的要求不仅仅是实现设计稿的效果,更是要多去思考不同的解决方案,评估不同方案的优劣,然后使用在该场景下最优雅的方式去实现。那些最终没有被我们采纳的方案,同样也可以帮助我们学到很多知识。所以,我们列出的参考资料未必是实现需求所必须的。有的时候,实现题目的要求很简单,甚至参考资料里就有,但是背后的思考和亲手去实践却是任务最关键的一部分。在学习这些资料时,要多思考,多提问,多质疑。相信通过和小伙伴们的交流,能让你的学习事半功倍。

任务描述

  • 基于第三阶段「王牌特工」任务,让你的特工潜入一个庞大的地下迷宫执行任务!(Roguelike Game)
  • 首先,我们需要建造一个迷宫:
    • 迷宫由许许多多的房间构成
    • 房间被走廊连接起来:迷宫中的任意一点,都有一条道路通往另外一点
    • 「不完美」迷宫:两点之间可能会有多条通路(可选)
    • 迷宫生成效果可参考以下图例:

  • 然后,将第三阶段「王牌特工」的核心玩法融入到这个迷宫内:
    • 特工在迷宫中寻找过关目标,抵达后通往下一个迷宫
    • 特工与守卫可以互相击杀:开发时可自行选择守卫 AI 方式,基于任务 47 或任务 49 皆可
    • 房间内有随机生成的墙,但不会把通往其它房间的走廊堵死
    • 游戏摄像机跟随特工移动,屏幕可见范围是迷宫的一个局部
    • 界面上设置小地图,方便玩家了解特工当前所处位置及附近守卫动向(可选)
    • 战争迷雾效果(Fog of War):未探索区域不可见、特工可视范围以外的区域不可见、未打开门的房间不可见(可选)
  • 最后,发挥想象,为游戏扩展更多有趣的元素!
  • 以下为类似玩法的游戏截图,供参考:

任务注意事项

  • 请注意代码风格的整齐、优雅
  • 代码中含有必要的注释
  • 在 PC 端和移动端上良好的适应性和流畅度
  • 保证游戏关卡可通
  • 较高的迷宫生成效率
  • 可以合理使用第三方框架、类库

任务协作建议

  • 团队内进行头脑风暴,共同讨论和设计游戏新要素
  • 如果是各自工作,可以按以下方式:
    • 团队集中讨论,明确题目要求,保证队伍各自对题目要求认知一致
    • 各自完成任务实践
    • 交叉互相Review其他人的代码,建议每个人至少看一个同组队友的代码
    • 相互讨论,最后合成一份组内最佳代码进行提交
  • 如果是分工工作,可以按照以下模块来分配任务
    • 迷宫生成
    • 核心玩法移植
    • 房间内元素安排
    • 小地图、战争迷雾等额外要素
    • 图形样式

参考资料

时间: 2024-11-05 15:53:05

任务五十二:王牌特工的相关文章

42. 蛤蟆的数据结构笔记之四十二图的遍历之广度优先

42. 蛤蟆的数据结构笔记之四十二图的遍历之广度优先 本篇名言:"生活真象这杯浓酒 ,不经三番五次的提炼呵 , 就不会这样一来可口 ! -- 郭小川" 继续看下广度优先的遍历,上篇我们看了深度遍历是每次一个节点的链表是走到底的. 欢迎转载,转载请标明出处:http://write.blog.csdn.net/postedit/47029275 1.  原理 首先,从图的某个顶点v0出发,访问了v0之后,依次访问与v0相邻的未被访问的顶点,然后分别从这些顶点出发,广度优先遍历,直至所有的

C和指针 (pointers on C)——第十二章:使用结构和指针

第十二章 使用结构和指针 这章就是链表.先单链表,后双向链表. 总结: 单链表是一种使用指针来存储值的数据结构.链表中的每个节点包含一个字段,用于指向链表的下一个节点. 有一个独立的根指针指向链表的第1个节点.单链表只能从一个方向遍历. 如何insert单链表:1.新节点的link字段必须设置为指向它的后面节点.2.前一个节点的link字段必须指向这个新节点. 为了防止可能会插入链表的起始位置这种情况,在C中,可以保存一个指向必须进行修改的link字段的指针,而不是保存一个指向前一个节点的指针.

微软云计算介绍与实践(实践之十二)

今天主要实践使用远程 SMB 存储共享保存 VHD.由于周末要看球等原因,内容不多,有料就行.(^_^) 接前面,公司私有云管理员小张已经执行了迁移,他还需要在最近已部署的 Virtual Machine Manager 环境中检查虚拟机设置.所以下一步小张需要确认 Guest01 的存储已经位于 HyperV02 上的 SMB 3.0 共享中,并且虚拟机通过 EvalCluster 群集运行. 1.打开 Virtual Machine Management 控制台,输入用户名 CONTOSO\

【管理心得之二十二】小人物 仰视 大授权

场景再现====================Boss:小王,来我办公室一下.小王: 嗯Boss:近期总公司有会,需要到外地出差几日.我不在的这段期间里,公司大小事务你帮忙处理一下.          如果有什么难决定的事,第一时间电话.邮件联系我商定即可.小王:  明白.放心吧领导,绝不会让你失望的Boss:嗯,那就好,没事了. {小王走出办公室} 心中暗喜,"难道这就是传说中的授权,Boss不在的时候,我岂不是最高权力的行使者." ==================== 从场景

QT开发(二十二)——QMainWindow主窗口

QT开发(二十二)--QMainWindow主窗口 一.主窗口简介 应用程序中的主窗口是与用户进行长时间交互的顶层窗口,提供了应用程序的大部分功能,通常是应用程序启动后的第一个窗口,应用程序一般由一个主窗口和多个对话框组成. QT中直接支持主窗口,QMainWindow是QT中主窗口的基类,是继承于QWidget类的容器型组件. QMainWindow内部封装了菜单栏.工具栏.中心组件.停靠组件.状态栏等. QMainWindow内置了布局管理器,基本的组件布局如下: 二.菜单栏 QT中提供了预

《构建之法》第十一、十二章学习总结

第十一章的内容是软件设计与实现. 在第一节中,讲的是关于分析和设计方法,向我们介绍在"需求分析"."设计与实现"阶段."测试""发布"阶段该搞清楚的问题. 在第二节中,讲的是关于图形建模和分析方法.在表达实体和实体之间的关系时,可以用到思维导图(Mind Map).实体关系图(ERD).UCD ;在表达数据的流动时,可以用到DFD工具:在表达控制流的时候可以用到FSM工具:前面提到的这些图形建模方法各有特点,UML却可以有一个

Python开发【第二十二篇】:Web框架之Django【进阶】

Python开发[第二十二篇]:Web框架之Django[进阶] 猛击这里:http://www.cnblogs.com/wupeiqi/articles/5246483.html 博客园 首页 新随笔 联系 订阅 管理 随笔-124  文章-127  评论-205 Python之路[第十七篇]:Django[进阶篇 ] Model 到目前为止,当我们的程序涉及到数据库相关操作时,我们一般都会这么搞: 创建数据库,设计表结构和字段 使用 MySQLdb 来连接数据库,并编写数据访问层代码 业务逻

QT开发(五十二)———QML语言

QT开发(五十二)---QML语言 QML是一种声明语言,用于描述程序界面.QML将用户界面分解成一块块小的元素,每一元素都由很多组件构成.QML定义了用户界面元素的外观和行为:更复杂的逻辑则可以结合JavaScript脚本实现. 一.QML基础语法 1.Import语句 QML代码中,import语句一般写在头几行,主要用途如下:     A.包含类型的全名空间     B.包含QML代码文件的目录     C.JavaScript代码文件 格式如下: import Namespace Ver

第十二周进度条

第十二周          日期  星期一   星期二   星期三   星期四   星期五   星期六   星期日  了解到的知识点 js获取当前时间 var d = new Date() var nowYear = +d.getFullYear() EF框架填充下拉菜单 var model = db.GYSAllFoods.Select(m => new{GYS = m.GYS}).Distinct();//去重很关键            foreach (var item in model