山峰_不安的休战_uneasy-truce

发布于 2020年2月11日
(点击图片进入关卡)

通过平衡士兵与食人魔的数量来保持休战。

简介

如果一方军势强于另一方,紧张不安的士兵就会发起攻击,唤醒附近山洞里愤怒的雪人! 北方食人魔被阻隔,不算在人数里面。

南方每出现一个食人魔,就对应招募一名 "soldier" 。

注意函数 findSouthernUnits() 是如何在数组末端添加单位的:

southernUnits.append(unit)

默认代码

# 召唤一个士兵到南方对应每一个兽人!
# 不要把北方的兽人算入!

# 接受一个单位数组作为参数。
# 只返回单位到英雄的南方。
def findSouthernUnits(units):
    southernUnits = []
    for unit in units:
        if unit.pos.y < hero.pos.y:
            # 将单元添加到数组中: append()
            southernUnits.append(unit)
    return southernUnits

while True:
    friends = hero.findFriends()
    enemies = hero.findEnemies()
    # 使用FouthUnthNeb单位以获得南部的敌人数量。

    # 如果你南部的食人魔比友军数量多。

        # 然后召唤另一个“士兵”。

概览

首先,将 enemies 数组作为参数传递给 findSouthernUnits() 。

这将返回一个只包含南方敌人的新数组,因此需要保存到一个新变量中。

然后,将新数组长度和友军数组的长度进行对比,如果敌人更多则招募 "soldier" !

不安的休战解法

# 召唤一个士兵到南方对应每一个兽人!
# 不要把北方的兽人算入!

# 接受一个单位数组作为参数。
# 只返回单位到英雄的南方。
def findSouthernUnits(units):
    southernUnits = []
    for unit in units:
        if unit.pos.y < hero.pos.y:
            # 将单元添加到数组中: append()
            southernUnits.append(unit)
    return southernUnits

while True:
    friends = hero.findFriends()
    enemies = hero.findEnemies()
    # 使用FouthUnthNeb单位以获得南部的敌人数量。
    enemy = findSouthernUnits(enemies)
    # 如果你南部的食人魔比友军数量多。
    if len(enemy) > len(friends):
        # 然后召唤另一个“士兵”。
        hero.summon("soldier")