这一关并没有什么难度,控制移动时也可以找出规律使用循环结构。但是想要完美通关还需要注意以下几点:
- 需要给不同的对象使用合适的技能,才能获取最多的金币奖励
- 判断类型时,所有的都应该小写,大写无法识别
- 最后一个房间想要吃掉毒药不死亡,获取到最后四枚金币, 需要给自己施加grow的技能让自己变大(增加血量)。
代码如下:
# Try to get the best grade (gold) at the magic exam.
# Move to each X mark, then use a spell.
def healFriendOrEliminateEnemyOrPickItem():
friend = hero.findNearestFriend()
enemy = hero.findNearestEnemy()
item = hero.findNearestItem()
if friend:
if friend.type == "soldier":
hero.cast("heal", friend)
if friend.type == "goliath":
hero.cast("grow", friend)
if friend.type == "paladin":
hero.cast("regen", friend)
if enemy:
if enemy.type == "ogre":
hero.cast("force-bolt", enemy)
if enemy.type == "brawler":
hero.cast("shrink", enemy)
if enemy.type == "scout":
hero.cast("poison-cloud", enemy)
if item:
if item.type == "potion":
hero.moveXY(item.pos.x, item.pos.y)
else:
hero.cast("grow", hero)
hero.moveXY(item.pos.x, item.pos.y)
for i in range(4):
hero.moveXY(18 + i * 16, 40)
healFriendOrEliminateEnemyOrPickItem()
hero.moveXY(18 + i * 16, 24)
healFriendOrEliminateEnemyOrPickItem()