三招破解ICode竞赛设计师的坑爹路线! - 知乎

德甲 04-09 阅读:25 评论:0
三招破解ICode竞赛设计师的坑爹路线! - 知乎

  在4月15号,ICode竞赛上线了第三阶段的关卡。

  这个阶段中,有了随机关卡,算是兑现了愚人节新闻的一部分。

  Emmm……每周更新10关?难道是关卡设计者怕大家解题太快,怂了?

  直到,我进入了新的关卡……

  我的第109关:这是个啥?

  我的第110关:这又是个啥?

  我感受到了设计师满满的“恶意”……

  这时候,我才明白,每周更新10关是为了保护祖国的花朵,让他们有足够的时间来解题……

  社会!社会!

  但是,我好慌!!!

  随机关卡,意味着不能提前准备……万一学生随机到奇怪的关卡,我们就只能大眼瞪小眼了!

  然而,作为一个专业的教师,我必须冷静下来……

  我发现,这些关卡最困难的点不在于代码,而在于找到正确的路径。

  只要找到了设计师预设的路线,就能够通过for循环来完成任务,代码也会比较优雅。

  于是,我在各个竞赛群中搜集了不同的随机地图,经过冷静专业的分析,总结了下面三个寻找路径规律的方法:寻找重复的模式

  模式(Pattern)是在人工智能领域经常出现的一个词汇,计算机可以通过对模式的识别来处理不同的信息。在这里,我们把路径中反复出现的一些形式和规律叫做模式。

  在我的第110关中,我们可以看到一个很典型的模式(Pattern)在地图中反复出现:反复出现的T字

  找到了这样的模式,我们可以了解到很多信息:我们可以发现Dev行动的大致路线;如果要用for循环来完成任务,那么应该循环3次。

  在此基础上,我们看看还有哪些需要收集的物品被漏掉了,就很容易发现下面的规律:Dev的走向

  再稍作分析,我们可以很容易地发现:不一定要经过所有的绿色飞板,有的飞板是干扰项;一定要绕过红色的能量。

  因此,很快就可以找到下面这个路径了:

  找到这个路径,代码就很容易完成了!连接飞板编号

  在新的关卡中,绿色飞板是一个核心元素。如果要使用for语句,正确路径经过的绿色飞板编号很大概率会有规律。我们可以根据这个特点,对路径进行反向复原。

  例如,我给我的第109关绿色飞板编上了号:

  如果我们假设飞板的编号在循环中是逐渐增大的,那么就可以尝试把飞板按编号连接一下:

  连接以后,路线就很明显了。

  我们在此基础上,根据地形和物品的分布,稍作修改,就可以找到正确路径了:计算伤害点数

  有的关卡中,设计师专门设计了一些干扰路径。乍看之下,这些路径非常简单,但细细一品,才发现这其中有坑!

  这是我在竞赛群里看到的一个地图:

  这个地图非常有迷惑性,由于我们希望找到最短的路径,很容易就会找到这样一条路径:

  然鹅,这并不是正确的路径!如果Dev按照这个路径行走,会因为能量耗光而死掉。

  要保证Dev顺利收集完所有的矿石,它可以扣掉的最大能量是90,换句话说:Dev最多只能经过9次崎岖的地面。借助这个线索,我又有了一种分析路径的新方法:计算一下:如果要搜集所有的矿石,必须要经过的地块会扣掉多少能量?根据剩余可以扣掉的能量,就可以排除会让能量耗尽的错误路径,更快找到正确的路径。

  以这个地图为例,我们先计算一下必须扣掉的能量有多少:

  可以看到,要收集所有的矿石,至少需要扣掉80点能量。

  因此,Dev可以被额外扣掉的能量,就只剩10点了!我们的目标,就是找到一条只有1块额外的崎岖地面的路径。

  在这个地图中,大部分路径都是唯一的,只有下图中的两个区域可能会有不同的路线:

  根据每条路会扣掉的能量,很容易就能找出正确的路线:

  以上就是我总结的3种找到复杂路线的方式。俗话说:授人以鱼不如授人以渔,我把这些方法分享出来,就是希望的大家可以从中得到启发,甚至找到更多更好的方法,也欢迎大家将你们的发现分享给我哦!

  有兴趣的话可以看看我其他的回答和文章:学 Python 都用来干嘛的?Uglyboy:手残党福音:用Python画出机器人Dev机器人老师/少儿编程老师的发展前景怎么样?现在流行的少儿编程是不是收智商税?

  ICode竞赛传送门:ICode.org

版权声明

本文仅代表作者观点,不代表百度立场。
本文系作者授权百度百家发表,未经许可,不得转载。

分享:

扫一扫在手机阅读、分享本文

网友评论

相关推荐

文章排行

标签列表