标签:type 如何使用 targe 属性 level alt 默认 荣耀 技术
(点击图片进入关卡)
看,沙漠,充满了荣耀、危机,当然还有沙子,很多很多的沙子。
简介
检查敌人类型 enemy.type ,以决定攻击哪些敌人
if enemy.type == "sand-yak" or enemy.type == "burl":
# 不要攻击这些类型的敌人。
else:
# 否则就是别的类型,那就攻击。
默认代码
# 收集硬币,忽略"sand-yak"和"burl"。
while True:
enemy = hero.findNearestEnemy()
item = hero.findNearestItem()
if enemy:
if enemy.type == "sand-yak" or enemy.type == "burl":
# 别攻击!赶紧收集硬币。
pass
else:
# 否则,攻击。
pass
elif item:
# 收集硬币:移动到物品的位置。
pass
else:
hero.moveXY(41, 31)
# 当牦牛靠近时向右移动10米来躲避
# 躲避4头牦牛完成此关
while True:
# 使用你的灵石获取你当前的 x 和 y 位置。
x = hero.pos.x
y = hero.pos.y
# 找到最近的耗牛。
yak = hero.findNearestEnemy()
# 使用 if 仅仅当牦牛少于10米距离的时候。
if hero.distanceTo(yak) < 10:
# 向右移动,添加10到你的x位置。
# 使用 moveXY 来移动!
pass
概览
还记得濒危树瘤之战关卡吗? 本关中,我们将检查 enemy.type 属性,以确保只攻击食人魔,而不攻击 "sand-yak"或者 "burl" 类型。
沙牦牛是强大凶猛的野兽,大小和速度各异。 如果你攻击或是离得太近,沙牦牛会立马踏平你。但如果你保持距离,它们就会保持平静。
查看示例代码是如何使用或运算符的:
if enemy.type == "sand-yak" or enemy.type == "burl":
# 不要攻击!接着收集硬币。
它的意思是,如果 这样 或者 那样,那么就 ... 这可以将 "sand-yak" 和 "burl" 两种类型的检查,合到一条if语句中。
沙丘 解法
# 收集硬币,忽略"sand-yak"和"burl"。
while True:
enemy = hero.findNearestEnemy()
item = hero.findNearestItem()
if enemy:
if enemy.type == "sand-yak" or enemy.type == "burl":
# 别攻击!赶紧收集硬币。
if item:
hero.moveXY(item.pos.x, item.pos.y)
pass
else:
# 否则,攻击。
hero.attack(enemy)
pass
elif item:
# 收集硬币:移动到物品的位置。
hero.moveXY(item.pos.x, item.pos.y)
pass
else:
hero.moveXY(41, 31)
「网易官方」极客战记(codecombat)攻略-沙漠-沙丘-the-dunes
标签:type 如何使用 targe 属性 level alt 默认 荣耀 技术
原文地址:https://www.cnblogs.com/codecombat/p/12966946.html