Tic Tac Toe With AI —终极入门指南! (第5部分)

说明:每当我们到达板子的终端状态时,我们都会返回一个数字。因此,现在我们有了一个函数,它可以创建板子的所有可能排列,并返回一个表示每个状态值的数字,这取决于.oMovesCount。 下一个问题是我们可能有多个具有相同值的状态,因此我们需要一种对它们进行排序的方法,然后选择列表的第一个状态。 第一次有完整的算法版本,首先要说明的是为什么我们在递归函数中返回stateScore,直到现在我们看到在基本情况下我们返回了一个数字,那么为什么返回stateScore? 解释很简单:我们使用基本情况创建一个数字nextScore ,用于与初始stateScore进行比较, 并根据它的转弯位置,更新stateScore,最后返回stateScore。 对我来说,这是我第一次看到递归,其中又有另一个收益,这是最难理解的部分,请仔细阅读,直到获得它,然后我们继续进行最后一部分。 专家提示:请记住,miniMax从一个已经填充的板(状态)开始创建板的所有可能状态,所以它是state.turn确定 stateScore 和 nextScore 之间的排序 。 例子:我们调用miniMax(_state),在它的深度只有1个深度直到填充木板之前的状态(剩下2个状态)。我们的stateScore将在-1000处启动,它将进行递归并找出一个状态返回10 — _state.oMovesCount = -20,另一个返回20。如果在带有“…

像攻击者一样思考,以保护您的JS应用程序

许多漏洞遍布网络,整个网络都依赖JavaScript。 要构建安全的JavaScript应用程序,您必须像攻击者一样思考。 上面的信息图表显示了公司的数据泄露情况,有趣的是,我国的身份证(称为Aadhaar)(如美国的SSN)在数据泄露方面名列前茅。 您可能会认为安全维护不力。 但是根据研究,一家普通公司在安全方面的支出约为400万美元。 请记住HeartBleed,它是OpenSSL中存在的安全漏洞,该漏洞已经冲浪了三年,终于在2014年发现。然后是shellshock,poddle expolit,StageFright,您可以在其中通过一条短信接收任何电话 连接到Internet的所有内容都是可入侵的,漏洞的存在并不是因为组织中的人是坏人,也不是程序员,他们只是有很多东西可以管理一切。 它是一个难题 要解决问题,总有正确的方法,我们需要了解问题。 通过歧义实现安全 许多人认为攻击者对您的数据一无所知,或者他们最不担心,我们牢不可破。 坚不可摧是胡说八道,也许一切都是易碎的,也许在未来量子计算机发展的时候,我可能错了,但是它走向自由的漫漫长路。 通过无知获得安全 通过完全忽略存在的安全性来认为您的系统是安全的,坏人不是真实的,不在乎。 但是他们确实在乎,他们不会留下任何可能性。 漏洞不是神话,它们是真实的,它花费了数百万美元和公众对组织的信任 通过接受代码中可能发生的泄漏,我们可以增强组织的安全性。…