用代码玩剧本杀?第3届83行代码大赛剧情官方解析

简介: 由阿里云云效主办的2021年第3届83行代码挑战赛已经收官。超2万人围观,近4000人参赛,85个团队组团来战。大赛采用游戏闯关玩儿法,融合元宇宙科幻和剧本杀元素,让一众开发者玩得不亦乐乎。

说到剧本杀,很多人很好奇,代码大赛究竟是如何与剧本杀元素结合的?在关卡里面收集到的线索,到底如何串联起来?我们请来了本次代码剧本杀的主要设计者陈少滨(阿里云云效代码平台)来具体讲讲。



前言


代码挑战赛、剧本杀、元宇宙,这些词可能单独列出来你都认识,但是放到一起可能就会有点疑惑:这三有啥关系?为了使83行代码挑战赛更加有趣,我们史无前例地将剧本杀元素、元宇宙科幻元素与代码挑战赛结合,打造了一场别开生面的代码剧本杀


既然是剧本杀,那么自然就要有线索。玩家每次通关,都能够获取code83的定制线索,其中不仅包含了关键的剧情信息,还有决赛出题人担心题目太难,特意留下的提示,最重要的是,参与的玩家还可以通过获取的线索换取云效83行代码xCHERRY定制机械键盘等豪华大礼。


下面,我们来揭秘一下这场代码剧本杀,看看你是否破获了真相。


线索设计


这次线索的设计的时候,每一条线索都包含了决赛题目相关的提示和剧情相关的提示,先给大家解释一下决赛题目相关的线索是怎么设计的,看大家有没有错过一些提示。


"<(?.*)> 可以表示什么呢?":第一条线索是提示决赛有正则类型的bug,由于?这种用法不是特别常用,所以在线索里提前给出提示。


"NPE:No People Emo":这个就是很直接地提示决赛里有NPE类型的问题,当决赛答题的时候,需要多关注一下有没有什么地方可能会是null,触发NPE。


"不是什么都会等你,很多事情都是一次性的":这个是提示可能是有一些“一次性”类型的bug,如果经验比较丰富的话,可能就能意识到这个是指流类型一次性读取的问题。


"我们通常以为admin就是admin":这其实是在提示决赛中admin可能不是admin,那可能是什么呢?可能是ADMIN,或者admin123这种,具体的大家在决赛题目中就会了解到。


"大家都喜欢全局视角,但全局视角也有它的问题":其实是在提醒你全局类型的变量可能有问题,你可能需要把全局变量换成局部类型的变量。


"好的单元测试 => 你看懂了单元测试 = 你看懂了代码":决赛题目中大部分的bug都是在单元测试调用的函数中,如果能聚焦地分析单元测试调用到的函数,就能把大部分的bug解决掉。


"有的bug之所以难找,就是因为它只在运行时出现":这个是在提示有一些bug可能是无法直接看代码就能分析到的,需要结合运行时的调试和诊断,才能发现这些bug。


"别得意忘形了,快收好你的尾巴!":这个是在提示正则匹配读取尾巴的问题。


"贪多嚼不烂":这个是在提示正则匹配的贪婪模式的问题。


"断点调试是万能的吗?不影响应用本身的观测或许才是更优选择":这个是在提示本次决赛的场景是无法正常使用断点调试的,所以可能需要使用应用观测的能力。


剧情设计


下面我们进行一下剧情向的解析。最开始我们收到的是这样的邀请函:



你收到了这封邀请函,但只有一个 YES 选择键,没办法拒绝,只能接受。接受了之后,你就进入了我们的故事线。在我们的故事线中,当前的时间线是这样的:


你是一个程序猿 -> 收到邀请函,进入宇宙基地 -> 进入第一扇门,存在缝隙,暗手会偷走宝贵的东西 -> 进入第二扇门,百万人名涌动,根据关键词找到对应人名 -> 进入第三扇门,重塑人生 -> 进入第四扇门,发现了自己的人生被代码定义。


这部分的剧情内容是通过 WebIDE 的剧情对话给出的,而剧情线索中,会给出过往的时间线:


高考过后,走上程序猿道路 -> 电脑中存在后门,导致公司机密泄漏,被开除 -> 接触到云晓(阿里云云效),了解云端开发 -> 开除后成为数学老师,怀念柯西(Cosy)带来的高效和充满技术感的生活 -> 疫情来临,钉钉助力在线教育 -> 意识觉醒,想用技术创造价值。


在了解了所有剧情之后,就需要回答三个问题,分别是:你来自什么宇宙、你的真实身份是什么、怎么创造生命的意义。


你来自什么宇宙,其实是在问你从哪里来;你的真实身份是什么,其实在问你是谁;怎么创造生命的意义,其实是问你要做什么,你要到哪里去。这是三个经典的人生问题。


那么具体怎么回答这三个问题呢?想要解决这三个问题,需要先将决赛关卡的bug解决完之后,会发现client的会返回一些字符串,这些字符串有三个开头(三个通道),如果根据这三个通道进行筛选,就会发现其实是这三段代码:





通过阅读这三段代码,会发现其实这三段代码正好就是过往时间线里面的三个阶段。


所以从剧情上的话,可以理解到“你”的人生其实早就被代码定义了。


第一个问题:你来自什么宇宙?当然毫无疑问就是在代码宇宙中。另外,从代码的包名也可以看出:

com.code.universe。


第二个问题:你的真实身份是什么呢?从代码中也很明确了,就是programmer(程序猿)。当然,了解完全部剧情之后,更准确的答案应该是一段代码(code)或者说一段程序(program)。


最后一个问题:怎么创造生命的意义?这个其实是稍微有一点难的,不像前两题这么直观,需要看完整个剧情,就会发现剧情里主要强调一点是技术的力量,第三段代码中也明确提到了在经历了人生的大转折之后,向往Technology的力量,学习了DevStudio的知识,Yunxiao的知识,Devops的知识,Cosy的知识,思考生命的价值。所以这一题的答案是技术(Technology),或者DevStudio、Yunxiao、Devops、Cosy都是可以的。


上述就是本次比赛的完整剧情了,最后还有一个附加题:


之前提到了故事线中的时间线,我们再来对比一下现实的时间线:


故事的时间线:


你是一个程序猿 -> 收到邀请函,进入宇宙基地 -> 进入第一扇门,存在缝隙,暗手会偷走宝贵的东西 -> 进入第二扇门,百万人名涌动,根据关键词找到对应人名 -> 进入第三扇门,重塑人生,最终人生(职业)未改变,过程更加丰富 -> 进入第四扇门,发现了自己的人生被代码定义 -> 发现真相,阿里云云效邀请你一起用技术创造生命的价值


现实的时间线:


你是一个程序猿 -> 你收到开赛邀请,参与83行代码大赛 -> 开启第一关,解决会造成漏洞的安全问题 -> 开启第二关,从百万级别类名中,寻找指定前缀的类名 -> 开启第三关,重构代码,最终业务逻辑不变,代码质量更好 -> 开启第四关,解决bug,解锁真相 -> 揭晓结局,阿里云云效邀请你一起用技术创造生命的价值


当我们看完这时间线之后,最后我们可以再回过来看这三个问题:你来自什么宇宙?你的真实身份是什么?


怎么创造生命的价值?这三个问题就留给大家思考了。


结语


2021年第3届83行代码挑战赛已经正式收官。你参加的,到底是一场代码挑战赛,还是一场剧本杀,亦或是?你看清真相了吗?


大赛目前全部关卡开放体验,域名地址:https://code83.ide.aliyun.com/,欢迎你来。

相关文章
|
7月前
|
算法 PyTorch 算法框架/工具
昇腾 msmodelslim w8a8量化代码解析
msmodelslim w8a8量化算法原理和代码解析
459 5
|
9月前
|
搜索推荐 UED Python
实现一个带有昼夜背景切换的动态时钟:从代码到功能解析
本文介绍了一个使用Python和Tkinter库实现的动态时钟程序,具有昼夜背景切换、指针颜色随机变化及整点和半点报时功能。通过设置不同的背景颜色和随机变换指针颜色,增强视觉吸引力;利用多线程技术确保音频播放不影响主程序运行。该程序结合了Tkinter、Pygame、Pytz等库,提供了一个美观且实用的时间显示工具。欢迎点赞、关注、转发、收藏!
381 94
|
7月前
|
传感器 监控 Java
Java代码结构解析:类、方法、主函数(1分钟解剖室)
### Java代码结构简介 掌握Java代码结构如同拥有程序世界的建筑蓝图,类、方法和主函数构成“黄金三角”。类是独立的容器,承载成员变量和方法;方法实现特定功能,参数控制输入环境;主函数是程序入口。常见错误包括类名与文件名不匹配、忘记static修饰符和花括号未闭合。通过实战案例学习电商系统、游戏角色控制和物联网设备监控,理解类的作用、方法类型和主函数任务,避免典型错误,逐步提升编程能力。 **脑图速记法**:类如太空站,方法即舱段;main是发射台,static不能换;文件名对仗,括号要成双;参数是坐标,void不返航。
252 5
|
8月前
|
人工智能 文字识别 自然语言处理
保单AI识别技术及代码示例解析
车险保单包含基础信息、车辆信息、人员信息、保险条款及特别约定等关键内容。AI识别技术通过OCR、文档结构化解析和数据校验,实现对保单信息的精准提取。然而,版式多样性、信息复杂性、图像质量和法律术语解析是主要挑战。Python代码示例展示了如何使用PaddleOCR进行保单信息抽取,并提出了定制化训练、版式分析等优化方向。典型应用场景包括智能录入、快速核保、理赔自动化等。未来将向多模态融合、自适应学习和跨区域兼容性发展。
|
10月前
|
自然语言处理 搜索推荐 数据安全/隐私保护
鸿蒙登录页面好看的样式设计-HarmonyOS应用开发实战与ArkTS代码解析【HarmonyOS 5.0(Next)】
鸿蒙登录页面设计展示了 HarmonyOS 5.0(Next)的未来美学理念,结合科技与艺术,为用户带来视觉盛宴。该页面使用 ArkTS 开发,支持个性化定制和无缝智能设备连接。代码解析涵盖了声明式 UI、状态管理、事件处理及路由导航等关键概念,帮助开发者快速上手 HarmonyOS 应用开发。通过这段代码,开发者可以了解如何构建交互式界面并实现跨设备协同工作,推动智能生态的发展。
534 10
鸿蒙登录页面好看的样式设计-HarmonyOS应用开发实战与ArkTS代码解析【HarmonyOS 5.0(Next)】
|
9月前
|
SQL Java 数据库连接
如何在 Java 代码中使用 JSqlParser 解析复杂的 SQL 语句?
大家好,我是 V 哥。JSqlParser 是一个用于解析 SQL 语句的 Java 库,可将 SQL 解析为 Java 对象树,支持多种 SQL 类型(如 `SELECT`、`INSERT` 等)。它适用于 SQL 分析、修改、生成和验证等场景。通过 Maven 或 Gradle 安装后,可以方便地在 Java 代码中使用。
2659 11
|
10月前
|
PHP 开发者 容器
PHP命名空间深度解析:避免命名冲突与提升代码组织####
本文深入探讨了PHP中命名空间的概念、用途及最佳实践,揭示其在解决全局命名冲突、提高代码可维护性方面的重要性。通过生动实例和详尽分析,本文将帮助开发者有效利用命名空间来优化大型项目结构,确保代码的清晰与高效。 ####
147 20
|
11月前
|
机器学习/深度学习 存储 人工智能
强化学习与深度强化学习:深入解析与代码实现
本书《强化学习与深度强化学习:深入解析与代码实现》系统地介绍了强化学习的基本概念、经典算法及其在深度学习框架下的应用。从强化学习的基础理论出发,逐步深入到Q学习、SARSA等经典算法,再到DQN、Actor-Critic等深度强化学习方法,结合Python代码示例,帮助读者理解并实践这些先进的算法。书中还探讨了强化学习在无人驾驶、游戏AI等领域的应用及面临的挑战,为读者提供了丰富的理论知识和实战经验。
508 5
|
11月前
|
存储 安全 Java
系统安全架构的深度解析与实践:Java代码实现
【11月更文挑战第1天】系统安全架构是保护信息系统免受各种威胁和攻击的关键。作为系统架构师,设计一套完善的系统安全架构不仅需要对各种安全威胁有深入理解,还需要熟练掌握各种安全技术和工具。
458 10
|
11月前
|
前端开发 JavaScript 开发者
揭秘前端高手的秘密武器:深度解析递归组件与动态组件的奥妙,让你代码效率翻倍!
【10月更文挑战第23天】在Web开发中,组件化已成为主流。本文深入探讨了递归组件与动态组件的概念、应用及实现方式。递归组件通过在组件内部调用自身,适用于处理层级结构数据,如菜单和树形控件。动态组件则根据数据变化动态切换组件显示,适用于不同业务逻辑下的组件展示。通过示例,展示了这两种组件的实现方法及其在实际开发中的应用价值。
155 1

推荐镜像

更多
  • DNS