变身画家吧!
# 你现在有花环! 你可以做: # toggleFlowers(true/false) - 打开或关闭鲜花。 # setFlowerColor("random") - 也可以是 "pink", "red", "blue", "purple", "yellow", or "white"。 # 以下是绘制图形的一些函数: # x,y - 图形的中心 # size - 图形的大小(半径,边长) def drawCircle(x, y, size): angle = 0 hero.toggleFlowers(False) while angle <= Math.PI * 2: newX = x + (size * Math.cos(angle)) newY = y + (size * Math.sin(angle)) hero.moveXY(newX, newY) hero.toggleFlowers(True) angle += 0.2 def drawSquare(x, y, size): hero.toggleFlowers(False) cornerOffset = size / 2 hero.moveXY(x - cornerOffset, y - cornerOffset) hero.toggleFlowers(True) hero.moveXY(x + cornerOffset, y - cornerOffset) hero.moveXY(x + cornerOffset, y + cornerOffset) hero.moveXY(x - cornerOffset, y + cornerOffset) hero.moveXY(x - cornerOffset, y - cornerOffset) redX = {"x": 28, "y": 36} whiteX = {"x": 44, "y": 36} # 选择一种颜色。 hero.setFlowerColor("blue") # 在redX上绘制一个大小为10的圆圈。 drawCircle(28, 36, 10) # 改变颜色! hero.setFlowerColor("yellow") # 在whiteX上绘制一个大小为10的正方形。 drawSquare(44, 36, 10) # 现在尝试绘制任何你想要的! hero.setFlowerColor('pink') drawSquare(35 , 38, 18)自行作为艺术家展现你的才艺,我们去偷懒使用上一节的画圈函数。我的代码画出来的不美观,大家可自行创造。
# 这个关卡是为花艺准备的。 # 真正的目标是尝试并获得乐趣! # 如果你画了至少包含1000朵花的画作,那么你将在这个关卡打上"succeed"的烙印。 #控制我们的人物来画圈圈 # toggleFlowers(true/false) - 打开或关闭鲜花。 # setFlowerColor("random") - 也可以是 "pink", "red", "blue", "purple", "yellow", or "white"。 def drawCircle(x, y, size): angle = 0 hero.toggleFlowers(False) while angle <= Math.PI * 2: newX = x + (size * Math.cos(angle)) newY = y + (size * Math.sin(angle)) hero.moveXY(newX, newY) hero.toggleFlowers(True) angle += 0.2 while True: hero.setFlowerColor("random") drawCircle(88, 63, 5) drawCircle(87, 62, 5) drawCircle(86, 61, 5) drawCircle(85, 60, 5) drawCircle(84, 59, 5)已我的暴脾气我真不想招那破士兵去打敌人!!怎么也低我亲自上阵。
# 食人魔正试图除掉你的驯鹿! # 当召唤士兵进攻时,让弓箭手回来。 def pickUpCoin(): # 收集硬币。 coin = hero.findNearestItem() if coin: hero.moveXY(coin.pos.x, coin.pos.y) def summonTroops(): # 如果你有黄金就召唤士兵。 if hero.gold >= hero.costOf("soldier"): hero.summon("soldier") # 这个函数有一个名为士兵的参数。 # 参数就像变量一样。 # 调用函数时确定参数的值。 def commandSoldier(soldier): # 士兵要攻击敌人。 #soldiers = hero.findFriends() soldiers = hero.findByType("soldier") for soldier in soldiers: enemy = soldier.findNearestEnemy() if enemy: hero.command(soldier, "attack", enemy) # 编写一个命令弓箭手的函数来告诉你的弓箭手怎么做! # 它应该有一个参数将表示在被调用时传递给函数的射手。 # 弓箭手应该只攻击距离25米以内的敌人,否则原地待命。 def commandArcher(archer): archers = hero.findByType("archer") for archer in archers: enemy = archer.findNearestEnemy() if enemy and archer.distanceTo(enemy) < 25: hero.command(archer, "attack", enemy) else: hero.command(archer, "move", archer.pos) while True: pickUpCoin() summonTroops() friends = hero.findFriends() for friend in friends: if friend.type == "soldier": # 这位朋友将被分配给commandSoldier函数中的士兵变量 commandSoldier(friend) elif friend.type == "archer": # 务必指挥你的弓箭手。 commandArcher(friend)