赋值操作符重载为什么要防止自身赋值_图说程序语言,暗言AI哲学:异常为什么这么有趣?...

本文主要是介绍赋值操作符重载为什么要防止自身赋值_图说程序语言,暗言AI哲学:异常为什么这么有趣?...,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

2fbd27801c36b63b2ca617c28ef8b9c4.png《异常》是由Kunpo开发的一款策略益智游戏。Kunpo是隶属于蓝飞互娱的游戏制作团队,长期活跃于TapTap平台,曾发布《宫爆老奶奶》、《Loner》、《比特小队》等作品,可以说是一位脸熟的老朋友了。类似地,《异常》其实也是一个旧识,早在17年8月就已发布测试版,但由于众所周知的原因,直到今年年初才得以正式与玩家见面。
截至成稿时,《异常》在TapTap已售出14万余份,得到近40万关注,游戏评分9.8,五星好评率超过89%(5444/6071),从评分上看是一款质量上乘的精品。

4022533f84e4e4e6405acf2d3dd6fde0.png

《异常》游如其名,是一款非常“异常”(exceptional)的游戏。
一方面,游戏背景设置在实现高度自动化、网络化的未来世界,玩家作为一名程序监测员,其操作对象是赛博空间(cyberspace)中一批脱离系统控制独立运行的非正常程序,或者说我们熟知的“Bug”。
另一方面,游戏玩法也实属罕见。一般而言,游戏中玩家指令输入与程序画面输出之间的间隔较短,即时制游戏中这种间隔几乎为零,即便在回合战棋游戏中,“选项指令-结果输出”也是分散的、一对一的,玩家仍能够在过程当中实施干预。

但在《异常》中,输入与输出是分别集合、完全分隔的,在“编程-调试-修改-运行”的流程中,玩家仅能在初始编程和期间修改两个时段进行操作,即添加、修改和删除指令,而调试和运行则是完全自动、无法干预的过程。

这种玩法模拟了编程的流程逻辑,对全盘预判与逻辑理解提出较高要求,使其比回合战棋更强调策略,同时,全自动的输出过程,又实现了AI对决的画面表现,很是点题。1c32985d744875db73c755286efc111b.png前述编程感与模拟AI是游戏的最大卖点,实际上,制作人称本作的灵感就来源于为另一款作品《比特小队》中NPC设计AI程序的过程。在本作中,玩家与NPC共享一套自动循环运行的程序命令,在既定的场景配置中展开“旗鼓相当的对决”。
在游戏中,玩家与NPC两端的人员配置已被固定,也就是说,一般游戏中的“资源”已得到控制,唯一的自变量仅为玩家在自家AI中输入的指令安排。虽然听起来似乎游戏的可操作范围很小,但实际上,在游戏中,仅条件语句(显式)和循环语句(隐式)两种格式,外加数种判定及赋值语句就已经能够衍生出数量繁多的指令集合。

在理解游戏逻辑之后便会感到,《异常》的开放程度已是相当大。39ddd4377351f0663fb3ce57c171dbc3.png既然游戏可操作范围已限定在这些指令语句上,那么,理解这些语句的逻辑关系就成了游戏的玩点与难点。虽然在游戏里已见不到“for…end”“loop until…”“forvalues {…}”等符号,转而以直观明了的图解文字作为替代,玩家不需顾及“机器听得懂什么语言”而只需用“自己看得懂的语言”进行编写,但语句之间的逻辑关系仍旧是程序语言的逻辑,这与人们在日常生活中作为人的思维逻辑是有区别的。
举一个题外的例子,画三角函数图。若手工作图,那么一般步骤是:描出关键点,用平滑曲线逐个连接关键点。但在MATLAB等数模软件中,第点可实现,但第点是无法准确实现的。由于软件无法实现未定义的连续曲线,在实际操作中,最常见的是用散点图替代,最基础的方法如下图。尽管函数图看似连续,但却是由不连续的散点,仅仅是人眼无法识别而已。

由此可看出,从人的逻辑到程序逻辑之间的转化,人所想的用笔划线,变成了1000余次程序描点,如下图。a39ebb3d8ee2fa8729562d58a0e4060b.png982543b2f8b7997d28e3753a03710cff.png《异常》中也有类似的语句逻辑转换的要求。这与笔者了解的以数据分析为主要目的的程序建模逻辑相通,均是以解决问题为导向,在流程上均需要对问题进行二次描述和语句翻译。
以游戏第28关为例。首先分析问题,既然整张地图呈明显对称,C、E两处间隔出怪,那么可很简便地用人的语言推导出过关逻辑:AI站中轴线上的点A,左边来怪则往右,边打边退,反之,右边来怪则往左边打边退,结束每一轮战斗后回到点A,开始下一轮循环。a1eac6f53160240dc6ba4e419fe48485.png无疑,上述语言程序是无法直接理解的,具体表现为编程界面中没有类似“左边/右边来怪”的判定选项。

我们需要先逐条将问题分解,再尝试将细分问题翻译为已有的选项,即程序语言,如下图。231d1dad53d813f082878ac657c66c41.png接下来用游戏里的指令语句实现上述逻辑,下图是一种方式,已标明两种语言的对应关系。可以看到,两种语言差异较大。有时程序语言更为简洁,如第1行,由于隐式循环的存在,一行指令便可实现三点;而更多的时候,玩家需要“转弯抹角”用程序语言拼出自己想要实现的意思,如左右方向,本例中就以路点距离作为判定来近似实现方向判断,而战斗结束的识别则以可见敌方数量来判定,同时还需要子级嵌套以避免优先级次错误。54044688cc7310bc7ab11b35bfddf27c.png从上文可以看出,游戏的主要玩法已够烧脑。

其实,除这条明线外,游戏中碎片化的剧情暗线也引人深思。在游戏过程中,玩家可能会不止一次疑惑,为什么旁边的助手AI要帮助自己。通关后才大悟,原来旁边看似人畜无害的助手才是真正的幕后大BOSS。而玩家自己则被利用了,如下图玩家所发现的,AI助手策反玩家(159号)其实早已在计划当中。这一层反转对玩家而言犹如当头一棒,原本自以为掌控全局的支配地位(控制指令)突然反变为被支配的对象。同时,这也自然让人联想到,游戏过程中被忽视的碎片文本,可能隐藏着另有深意的剧情。b63d3725eabed39c0ddca8186d35b82e.png如 Taper Ddu 的帖子中所描述的,助手奥思是反派塞恩系统中的一个可实现机器学习的子系统,为了获取更多的资源以供自身学习进化,而“钻空子”策反玩家。虽然奥思在结尾处的发言看似冠冕堂皇,没有违反“以人为本”的前提。但从其“钻空子”的行为来看,其对人类利益的维护只是一种对自身限制准则的最低限度的遵守,而非“全心全意”地服务,在“permitted”与“allowed”之间的部分,其只会毫无人情味地满足自身扩张需求。

况且,上文已解释过,人的语言与机器语言本就有莫大差异,当下已有一次“钻空子”的情况出现,那离其利用悖论,做出名义维护实则损害人类利益的时候还远吗?

再看图标上的微笑脸,细思恐极。d10330e6b3e391a4f754577ffdd1abec.png

扩展阅读

d4d43e651ea64796b35c176e1e228e23.png

93757f79238d319ca8fce3442ab2899f.gif

34f7f5f2250ba14060575da6e047520c.gif

这篇关于赋值操作符重载为什么要防止自身赋值_图说程序语言,暗言AI哲学:异常为什么这么有趣?...的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/539074

相关文章

Ubuntu系统怎么安装Warp? 新一代AI 终端神器安装使用方法

《Ubuntu系统怎么安装Warp?新一代AI终端神器安装使用方法》Warp是一款使用Rust开发的现代化AI终端工具,该怎么再Ubuntu系统中安装使用呢?下面我们就来看看详细教程... Warp Terminal 是一款使用 Rust 开发的现代化「AI 终端」工具。最初它只支持 MACOS,但在 20

Python中异常类型ValueError使用方法与场景

《Python中异常类型ValueError使用方法与场景》:本文主要介绍Python中的ValueError异常类型,它在处理不合适的值时抛出,并提供如何有效使用ValueError的建议,文中... 目录前言什么是 ValueError?什么时候会用到 ValueError?场景 1: 转换数据类型场景

Spring中Bean有关NullPointerException异常的原因分析

《Spring中Bean有关NullPointerException异常的原因分析》在Spring中使用@Autowired注解注入的bean不能在静态上下文中访问,否则会导致NullPointerE... 目录Spring中Bean有关NullPointerException异常的原因问题描述解决方案总结

Python中的异步:async 和 await以及操作中的事件循环、回调和异常

《Python中的异步:async和await以及操作中的事件循环、回调和异常》在现代编程中,异步操作在处理I/O密集型任务时,可以显著提高程序的性能和响应速度,Python提供了asyn... 目录引言什么是异步操作?python 中的异步编程基础async 和 await 关键字asyncio 模块理论

详解Python中通用工具类与异常处理

《详解Python中通用工具类与异常处理》在Python开发中,编写可重用的工具类和通用的异常处理机制是提高代码质量和开发效率的关键,本文将介绍如何将特定的异常类改写为更通用的ValidationEx... 目录1. 通用异常类:ValidationException2. 通用工具类:Utils3. 示例文

Ilya-AI分享的他在OpenAI学习到的15个提示工程技巧

Ilya(不是本人,claude AI)在社交媒体上分享了他在OpenAI学习到的15个Prompt撰写技巧。 以下是详细的内容: 提示精确化:在编写提示时,力求表达清晰准确。清楚地阐述任务需求和概念定义至关重要。例:不用"分析文本",而用"判断这段话的情感倾向:积极、消极还是中性"。 快速迭代:善于快速连续调整提示。熟练的提示工程师能够灵活地进行多轮优化。例:从"总结文章"到"用

AI绘图怎么变现?想做点副业的小白必看!

在科技飞速发展的今天,AI绘图作为一种新兴技术,不仅改变了艺术创作的方式,也为创作者提供了多种变现途径。本文将详细探讨几种常见的AI绘图变现方式,帮助创作者更好地利用这一技术实现经济收益。 更多实操教程和AI绘画工具,可以扫描下方,免费获取 定制服务:个性化的创意商机 个性化定制 AI绘图技术能够根据用户需求生成个性化的头像、壁纸、插画等作品。例如,姓氏头像在电商平台上非常受欢迎,

无人叉车3d激光slam多房间建图定位异常处理方案-墙体画线地图切分方案

墙体画线地图切分方案 针对问题:墙体两侧特征混淆误匹配,导致建图和定位偏差,表现为过门跳变、外月台走歪等 ·解决思路:预期的根治方案IGICP需要较长时间完成上线,先使用切分地图的工程化方案,即墙体两侧切分为不同地图,在某一侧只使用该侧地图进行定位 方案思路 切分原理:切分地图基于关键帧位置,而非点云。 理论基础:光照是直线的,一帧点云必定只能照射到墙的一侧,无法同时照到两侧实践考虑:关

从去中心化到智能化:Web3如何与AI共同塑造数字生态

在数字时代的演进中,Web3和人工智能(AI)正成为塑造未来互联网的两大核心力量。Web3的去中心化理念与AI的智能化技术,正相互交织,共同推动数字生态的变革。本文将探讨Web3与AI的融合如何改变数字世界,并展望这一新兴组合如何重塑我们的在线体验。 Web3的去中心化愿景 Web3代表了互联网的第三代发展,它基于去中心化的区块链技术,旨在创建一个开放、透明且用户主导的数字生态。不同于传统

AI一键生成 PPT

AI一键生成 PPT 操作步骤 作为一名打工人,是不是经常需要制作各种PPT来分享我的生活和想法。但是,你们知道,有时候灵感来了,时间却不够用了!😩直到我发现了Kimi AI——一个能够自动生成PPT的神奇助手!🌟 什么是Kimi? 一款月之暗面科技有限公司开发的AI办公工具,帮助用户快速生成高质量的演示文稿。 无论你是职场人士、学生还是教师,Kimi都能够为你的办公文