首頁:https://cn.codecombat.com/play
語言:Python
第二界面:遠邊的森林Forest(40關)
時間:2-6小時
内容:if/else、關系操作符、對象屬性、處理輸入
網頁:https://cn.codecombat.com/play/forest
闖關:
第1關:森林保衛戰
子網頁:https://cn.codecombat.com/play/level/defense-of-plainswood?
# 建立兩個圍欄保護村民
# 把滑鼠放在地圖上得到X,Y坐标
self.buildXY("fence", 40, 52);
self.buildXY("fence", 40, 20);
第2關:羊腸小道
子網頁:https://cn.codecombat.com/play/level/winding-trail?
# 到小路的盡頭去,并在那兒修一個栅欄。
# 利用你的 moveXY(x, y)坐标移動功能。
# It's the first point of the path.
hero.moveXY(36, 59)
# Move at the next points of the path.
hero.moveXY(37, 12)
# Build a fence to stop the ogre.
hero.buildXY("fence", 72, 25)
第3關:叢林裡的間隔
子網頁:https://cn.codecombat.com/play/level/woodland-cubbies?
# 在叢林裡頭探索,但務必提高警覺!
# 這些叢林角落隔間可能會藏有ogres!
hero.moveXY(19, 33)
enemy = hero.findNearestEnemy()
# 條件判斷式将會檢查該變數是否參考到一個ogre
if enemy:
hero.attack(enemy)
hero.attack(enemy)
hero.moveXY(49, 51)
enemy = hero.findNearestEnemy()
if enemy:
# 在這裡撰寫攻擊敵人指令
hero.attack(enemy)
hero.attack(enemy)
# pass沒有特别的意思,隻是用來協助結束條件判斷式,寫不寫都可以
pass
hero.moveXY(58, 14)
enemy = hero.findNearestEnemy()
# 使用條件判斷式來确認敵人是否存在
if enemy:
# 如果敵人存在就攻擊他
hero.attack(enemy)
hero.attack(enemy)
第4關:If-stravaganza
子網頁:https://cn.codecombat.com/play/level/if-stravaganza?
# 消滅從他們自己的營地裡出來的食人魔
while True:
enemy = hero.findNearestEnemy()
# 使用一個 “if” 語句去檢查是否有敵人存在:
if enemy:
# 攻擊敵人如果它存在的話
hero.attack(enemy)
hero.attack(enemy)
第5關:背靠背
子網頁:https://cn.codecombat.com/play/level/back-to-back?
# 呆在中間防守!
while True:
enemy = hero.findNearestEnemy()
if enemy:
# 亦或主動出擊...
hero.attack(enemy)
hero.attack(enemy)
pass
else:
# 亦或回到你的陣地防守。
hero.moveXY(40, 34)
pass
第6關:森林劈裂者
子網頁:https://cn.codecombat.com/play/level/woodland-cleaver?
# 盡可能經常使用你的新技能“cleave”
hero.moveXY(23, 23)
while True:
enemy = hero.findNearestEnemy()
if hero.isReady("cleave"):
# “Cleave”掉敵人!
hero.cleave(enemy)
pass
else:
# 否則(如果“cleave”還沒準備好),就用你的普通攻擊
hero.attack(enemy)
pass
第7關:邊遠地區的對峙
子網頁:https://cn.codecombat.com/play/level/backwoods-standoff?
# 這些曼切堪食人魔害怕英雄!
# 說些什麼,他們會吓得往後退。
# 但是,有足夠的曼切堪食人魔,他們将聯合起來伏擊你!小心!
# 每當`cleave`(橫劈)冷卻時間完成,立即用它清除敵人。
while True:
# 使用 ‘isReady’ 中的一個 “if-statement” 的語句來檢查 “cleave”
if hero.isReady("cleave"):
# 劈斬!
hero.cleave()
# 或者,如果 cleave 還沒準備好的話:
else:
# 說一點什麼來吓走曼切堪食人魔
hero.say("Bool!")
pass
第8關:測距儀
子網頁:https://cn.codecombat.com/play/level/range-finder?
# 瘦人正在森林裡頭巡邏!
# 使用distanceTo方法來計算敵人與英雄間的距離
# 說出每個敵人和英雄間的距離以告知大砲要轟炸哪裡
enemy1 = "Gort"
distance1 = hero.distanceTo(enemy1)
hero.say(distance1)
enemy2 = "Smasher"
# 将distance2變數作為參數,傳入say()方法
distance2 = hero.distanceTo(enemy2)
# 測量并說出剩餘敵人與英雄間的距離
hero.say(distance2)
# 不要向你的友軍進行射擊!
enemy3 = "Charles"
enemy4 = "Gorgnub"
distance4 = hero.distanceTo(enemy4)
hero.say(distance4)
第9關:保護農民
子網頁:https://cn.codecombat.com/play/level/peasant-protection?
while True:
enemy = hero.findNearestEnemy()
distance = hero.distanceTo(enemy)
if distance < 10:
# 如果他們與農民太近,就攻擊他們
hero.attack(enemy)
pass
# 否則的話,呆在農民旁邊!
else:
hero.moveXY(40, 37)
第10關:瘋狂的食人魔
子網頁:https://cn.codecombat.com/play/level/maniac-munchkins?
# 地上另一個讓英雄打開的寶箱!
# 攻擊寶箱以打開它
# 有些食人魔可不會呆呆地站着挨打!
# 當食人魔離你太近時,你得學着保護你自己
while True:
enemy = hero.findNearestEnemy()
distance = hero.distanceTo(enemy)
# 首先,定期使用旋風斬(cleave)當技能就緒的時候:
if hero.isReady("cleave"):
hero.cleave(enemy)
pass
# 攻擊靠近并離你最近的食人魔
elif distance < 5:
hero.attack(enemy)
pass
# 否則,試着打破寶箱看看:
else:
hero.attack("Chest")
pass
第11關:躍火林中
子網頁:https://cn.codecombat.com/play/level/forest-fire-dancing?
# 在這關,别碰惡魔石!往其他方向移動避開它們!
while True:
evilstone = hero.findNearestItem()
if evilstone:
pos = evilstone.pos
# 如果惡魔石在左邊,走到右邊。
if pos.x == 34:
hero.moveXY(43, 17)
pass
else:
# 如果惡魔石在右邊,走到左邊。
if pos.x == 46:
hero.moveXY(37, 17)
pass
else:
# If there's no evilstone, go to the middle.
if pos.x == '':
hero.moveXY(43,22 )
pass
第12關:村莊漫遊者
子網頁:https://cn.codecombat.com/play/level/village-rover?
# This defines a function called findAndAttackEnemy
def findAndAttackEnemy():
enemy = hero.findNearestEnemy()
if enemy:
hero.attack(enemy)
# This code is not part of the function.
while True:
# Now you can patrol the village using findAndAttackEnemy
hero.moveXY(35, 34)
findAndAttackEnemy()
# Now move to the right entrance.
hero.moveXY(60, 31)
# Use findAndAttackEnemy
findAndAttackEnemy()
第13關:邊遠地區交叉口
子網頁:https://cn.codecombat.com/play/level/backwoods-fork?
# 一大波獸人正在到來!
# 使用 checkAndAttack 函數讓代碼易讀。
# 這個函式有一個參數
# 參數是一種給函數傳遞資訊的方式。
def checkAndAttack(target):
# 'target'參數隻是一個變數!
# 它包含了函數調用時的參數。
if target:
hero.attack(target)
hero.moveXY(43, 34)
while True:
hero.moveXY(58, 52)
topEnemy = hero.findNearestEnemy()
checkAndAttack(topEnemy)
# 移動到底部的X标記處。
hero.moveXY(58, 16)
# 建立名為 bottomEnemy 的變量,尋找最近敵人。
bottomEnemy = hero.findNearestEnemy()
# 使用 checkAndAttack 函數,并包括 bottomEnemy 變量。
checkAndAttack(bottomEnemy)
第14關:無敵旋風斬
子網頁:https://cn.codecombat.com/play/level/leave-it-to-cleaver?
# 這裡顯示如何定義一個稱為cleaveWhenClose的函式
# 函式定義了一個參數稱為target
def cleaveWhenClose(target):
if hero.distanceTo(target) < 5:
pass
# 把你的攻擊程式碼放在這裡
# 如果旋風斬就緒,對目標施放旋風斬
if hero.isReady("cleave"):
hero.cleave(target)
# 否則,直接攻擊目標!
else:
hero.attack(target)
# 這裡的程式碼不是函式的一部份.
while True:
enemy = hero.findNearestEnemy()
if enemy:
# 記得在cleaveWhenClose函式裡面,我們改用target作為指向敵人的變數.
cleaveWhenClose(enemy)
第15關:邊遠地區小夥伴
子網頁:https://cn.codecombat.com/play/level/backwoods-buddy?
# You now have a pet!
def speak(event):
# 你的寵物應該用pet.say()來回應
pet.say("Meow!")
pass
# 這告訴你的寵物去執行speak()函式當她聽到什麼
pet.on("hear", speak)
# 和你的寵物說話!
hero.say("Hello Kitty")
第16關:去接住
子網頁:https://cn.codecombat.com/play/level/go-fetch?
# 你被結實的陷阱給困住了!
# 派出你的寵物去拿回治療藥水!
def goFetch():
# 你可以在事件處理函式裡面使用回圈.
while True:
potion = hero.findNearestItem()
if potion:
# 用 “pet.fetch()” 去讓你的寵物撿藥水:
pet.fetch(potion)
pass
# 當寵物被召喚出來時,會觸發 "spawn" 事件。
# 這讓你的寵物在關卡開始運作 goFetch()。
pet.on("spawn", goFetch)
第17關:朋友與敵人
子網頁:https://cn.codecombat.com/play/level/friend-and-foe?
# 農民和士兵聚集在森林。
# 指令農民戰鬥,苦工遠離!
while True:
friend = hero.findNearestFriend()
if friend:
hero.say("To battle, " + friend.id + "!")
# 尋找最近的敵人,然後讓他們滾蛋
enemy = hero.findNearestEnemy()
if enemy:
hero.say("Go away,"+enemy.id+"!")
第18關:巫師之門
子網頁:https://cn.codecombat.com/play/level/the-wizards-door?
# 去找Laszlo并取得他的密碼數字.
hero.moveXY(30, 13)
las = hero.findNearestFriend().getSecret()
# 向 Laszlo 的數字中加7就能得到 Erzsebet的号碼
# 去找Erzsebet并告訴她魔法數字.
erz = las + 7
hero.moveXY(17, 26)
hero.say(erz)
# 将 Erzsebet 的數字除以 4 得到 Simoyi 的數字。
# 去找Simonyi并告訴他數字.
sim = erz / 4
hero.moveXY(30, 39)
hero.say(sim)
# 将 Simonyi 的數字乘以 Laszlo 的數字得到 Agata 的數字。
# 去找Agata并告訴她數字.
aga = sim * las
hero.moveXY(43, 26)
hero.say(aga)
第19關:寶庫追逐戰
子網頁:https://cn.codecombat.com/play/level/coincrumbs?
# 跟随硬币的軌迹來到紅色 X 标記的出口
while True:
# 這能找到最近的敵人。
item = hero.findNearestItem()
if item:
# 這将物品的 pos,就是坐标,存儲在變量中。
itemPosition = item.pos
# 将物品的 X 和 Y 坐标放進變量。
itemX = itemPosition.x
itemY = itemPosition.y
# 現在,使用moveXY來移動到itemX和itemY:
hero.moveXY(itemX, itemY)
第20關:看不見的距離
子網頁:https://cn.codecombat.com/play/level/blind-distance?
# 你的任務是告訴他獸人的距離。
# 這個函數尋找最近的敵人,并傳回距離。
# 假如沒有敵人,函式會回傳0.
def nearestEnemyDistance():
enemy = hero.findNearestEnemy()
result = 0
if enemy:
result = hero.distanceTo(enemy)
return result
while True:
# 呼叫 nearestEnemyDistance() 和
# 儲存結果到 enemyDistance變數裡頭.
enemyDistance = nearestEnemyDistance()
# 假如 enemyDistance 大于0:
if enemyDistance > 0:
# 說出 enemyDistance變數的值.
hero.say(enemyDistance)
第21關:困獸之鬥
子網頁:https://cn.codecombat.com/play/level/hit-and-freeze?
# 你掉進陷阱裡了!别動!你會受傷的!
# 這個函數檢查敵人是否在攻擊範圍。
def inAttackRange(enemy):
distance = hero.distanceTo(enemy)
# 幾乎所有的劍攻擊距離都是3.
if distance <= 3:
return True
else:
return False
# 隻有獸人在範圍内才攻擊他們.
while True:
# 找到最近的敵人,并将其儲存在一個變量中。
enemy = hero.findNearestEnemy()
# 調用 inAttackRange(enemy),将 enemy 作為參數
# 把結果儲存于 “canAttack” 變量中
canAttack = inAttackRange(enemy)
# 假如儲存在 canAttack的結果是 True, 然後下手!
if canAttack:
hero.attack(enemy)
pass
簡化版:
while True:
enemy = hero.findNearestEnemy()
if hero.distanceTo(enemy) <= 3:
hero.attack(enemy)
第22關:鹽堿地
子網頁:https://cn.codecombat.com/play/level/salted-earth?
# 獸人正在攻擊附近的殖民地!
# 小心,獸人在地上放了毒藥。
# 收集硬币并打敗獸人,但是要避開毛怪(burls)和毒藥!
while True:
enemy = hero.findNearestEnemy()
if enemy.type == "munchkin" or enemy.type == "thrower":
hero.attack(enemy)
item = hero.findNearestItem()
# 檢查物品類型,確定英雄不會撿起毒藥!
# 尋找類型:'gem' 和 'coin'
if item.type == "gem" or item.type == "coin":
pos = item.pos
x = pos.x
y = pos.y
hero.moveXY(x, y)
第23關:春雷
子網頁:https://cn.codecombat.com/play/level/spring-thunder?
# 某些金币和寶石會吸引閃電.
# 這個英雄應隻收集銀币和藍寶石
while True:
item = hero.findNearestItem()
# 銀币的價值為2.
# 收集該物品,如果其類型等于"coin"
# AND item.value 相等于2
if item.type == "coin" and item.value == 2:
hero.moveXY(item.pos.x, item.pos.y)
# 一個藍寶石價值10
# 收集該物品,如果其類型等于"gem"
# AND item.value等于10.
if item.type == "gem" and item.value == 10:
hero.moveXY(item.pos.x, item.pos.y)
第24關:平常的一天
子網頁:https://cn.codecombat.com/play/level/usual-day?
# 打敗食人魔,收集金币。一切都那麼平常。
# 使用 與(AND) 在同一行檢查存在性和類型。
while True:
enemy = hero.findNearestEnemy()
# 有了與(AND),隻在敵人存在時檢查類型
if enemy and enemy.type == "munchkin":
hero.attack(enemy);
# 尋找最近的物品
item = hero.findNearestItem()
# 如果有名為 “coin” (金币)的物品存在,那就快去收集它!
if item and item.type == "coin":
hero.moveXY(item.pos.x, item.pos.y)
第25關:穿越
子網頁:https://cn.codecombat.com/play/level/passing-through?
# 不要冒犯友善獸人的儀式
while True:
item = hero.findNearestItem()
if item:
# 如果物品的類型不等于"gem"
if item.type != "gem":
# 然後跟随你的寵物。
hero.moveXY(pet.pos.x, pet.pos.y)
# 否則:
else:
# 移動到寶石的坐标。
hero.moveXY(item.pos.x, item.pos.y)
第26關:有用的對手
子網頁:https://cn.codecombat.com/play/level/useful-competitors?
# 這片金币地中暗藏了緻命的毒藥。
# 獸人正在進攻,而苦力嘗試偷你的金币!
# 隻在敵人類型不是 "peon" 的時候攻擊。
while True:
enemy = hero.findNearestEnemy()
if enemy:
if enemy.type != "peon":
hero.attack(enemy)
item = hero.findNearestItem()
if item:
# 隻在物品的類型不是 "poison" 的時候收集。
if item.type != "poison":
hero.moveXY(item.pos.x, item.pos.y)
pass
第27關:邏輯之路
子網頁:https://cn.codecombat.com/play/level/logical-path?
# 從巫師那得到兩個秘密的真假值
hero.moveXY(14, 24)
secretA = hero.findNearestFriend().getSecretA()
secretB = hero.findNearestFriend().getSecretB()
# 如果 secretA 和 secretB 都為真,走上面的路;否則,走下面。
# 檢視提示,學會寫邏輯表達式。
secretC = secretA and secretB
if secretC:
hero.moveXY(20, 33)
else:
hero.moveXY(20, 15)
hero.moveXY(26, 24)
# 如果 secretA 和 secretB 中有一個為真,走上面。
secretD = secretA or secretB
if secretD:
hero.moveXY(32, 33)
else:
hero.moveXY(32, 15)
hero.moveXY(38, 24)
# If secretB is NOT true, take the high path.
secretE = not secretB
if secretE:
hero.moveXY(44, 33)
else:
hero.moveXY(44, 15)
hero.moveXY(50, 24)
第28關:回到多刺疏林農場
子網頁:https://cn.codecombat.com/play/level/return-to-thornbush-farm?
# 這個函數 “maybeBuildTrap” 定義了兩個參數
def maybeBuildTrap(x, y):
# 使用x和y作為座标來移動過去
hero.moveXY(x, y)
enemy = hero.findNearestEnemy()
if enemy:
pass
# 使用 buildXY 在所給 x 和 y 坐标建造 "fire-trap".
hero.buildXY("fire-trap", x, y)
while True:
# 這叫做 maybeBuildTrap,帶有上方入口的坐标。
maybeBuildTrap(43, 50)
# 現在在左邊入口使用maybeBuildTrap
maybeBuildTrap(25, 34)
# 現在用 “maybeBuildTrap” 炸開底部的門口!
maybeBuildTrap(43, 20)
第29關:收集金币
子網頁:https://cn.codecombat.com/play/level/coinucopia?
# 當你放好旗幟後點送出.
# 點選送出後,旗幟按鈕出現在左下角.
while True:
flag = hero.findFlag()
if flag:
hero.pickUpFlag(flag)
else:
hero.say("為英雄放置一面旗幟來移動.")
第30關:金币草地
子網頁:https://cn.codecombat.com/play/level/copper-meadows?
# 收集每片草地的所有金币。
# 使用旗子在草地間移動。
# 當你準備好放置旗子時點選“送出”
while True:
flag = hero.findFlag()
if flag:
pass # “pass”是一個占位符,它沒有任何作用
# Pick up the flag.
hero.pickUpFlag(flag)
else:
# Automatically move to the nearest item you see.
item = hero.findNearestItem()
if item:
position = item.pos
x = position.x
y = position.y
hero.moveXY(x, y)
第31關:插旗子
子網頁:https://cn.codecombat.com/play/level/drop-the-flag?
# 在你想要建造陷阱的位置插旗
# 當你沒有在建造陷阱的時候,收集金币!
while True:
flag = hero.findFlag()
if flag:
# 我們該如何通過旗子的位置得到 flagX 和 flagY 呢?
# (向下看如何得到物品的 x 和 y)
flagPos = flag.pos
flagX = flagPos.x
flagY = flagPos.y
hero.buildXY("fire-trap", flagX, flagY)
hero.pickUpFlag(flag)
else:
item = hero.findNearestItem()
if item:
itemPos = item.pos
itemX = itemPos.x
itemY = itemPos.y
hero.moveXY(itemX, itemY)
第32關:小心陷阱
子網頁:https://cn.codecombat.com/play/level/mind-the-trap?
# 如果你試圖攻擊一個遠處的敵人,你的英雄會忽略掉所有的旗子而朝它沖過去。
# 你需要確定你隻攻擊靠近自己的敵人!
while True:
flag = hero.findFlag()
enemy = hero.findNearestEnemy()
if flag:
# 去拔旗子。
hero.pickUpFlag(flag)
hero.say("我應該去把旗子拔起來。")
elif enemy:
# 僅當敵人的距離小于10米時才攻擊。
distance = hero.distanceTo(enemy)
if distance < 10:
hero.attack(enemy)
第33關:通信屍體
子網頁:https://cn.codecombat.com/play/level/signal-corpse?
# 你可以使用旗子來選擇不同的政策
# 在這關,綠色旗子代表你要移動到旗子處。
# 遇到黑旗就意味着你要劈開旗子
# The doctor will heal you at the Red X
while True:
green = hero.findFlag("green")
black = hero.findFlag("black")
nearest = hero.findNearestEnemy()
if green:
hero.pickUpFlag(green)
elif black and hero.isReady("cleave"):
hero.pickUpFlag(black)
# 劈斬!
hero.cleave(black)
elif nearest and hero.distanceTo(nearest) < 10:
# 攻擊!
hero.attack(nearest)
pass
第34關:豐富的覓食
子網頁:https://cn.codecombat.com/play/level/rich-forager?
# 使用 if 和 else if 來處理任何情況
# 放置它來防禦敵人,收集金币
# 確定你從物品商店買到偉大的盔甲,建議400點以上的健康。
while True:
flag = hero.findFlag()
enemy = hero.findNearestEnemy()
item = hero.findNearestItem()
if flag:
# 當我發現旗子的時候發生了什麼?
hero.pickUpFlag(flag)
elif enemy:
# 當我找到敵人的時候發生了什麼?
if hero.isReady("cleave"):
hero.cleave(enemy)
else:
hero.attack(enemy)
elif item:
# 當我找到一個物品的時候,發生了什麼?
hero.moveXY(item.pos.x, item.pos.y)
第35關:圍攻Stonehold
子網頁:https://cn.codecombat.com/play/level/siege-of-stonehold?
# 幫助你的朋友擊敗索科塔派出的手下。
# 你需要更好的裝備和政策去赢得戰鬥。
# 标記可能有用,不過這取決于你——要有創造性哦!
# 在圍欄後有位醫生。移動到 X 處得到治療!
while True:
enemy = hero.findNearestEnemy()
flag = hero.findFlag()
ready = hero.isReady("cleave")
if flag:
hero.moveXY(flag.pos.x, flag.pos.y)
hero.pickUpFlag(flag)
elif enemy:
distance = hero.distanceTo(enemy)
if distance < 10 and ready:
hero.cleave(enemy)
else:
hero.attack(enemy)
【競技AI】第36關:競技場
子網頁:https://cn.codecombat.com/play/level/dueling-grounds?
第一次:
# 在決鬥中擊敗敵人的英雄!
while True:
# 在一個循環中找到并攻擊敵人
# 當你完成的時候,送出到多人天梯系統中!
enemy = hero.findNearestEnemy()
if hero.isReady("cleave"):
hero.cleave(enemy)
else:
hero.attack(enemy)
第二次:
# 在決鬥中擊敗敵人的英雄!
while True:
# 在一個循環中找到并攻擊敵人
# 當你完成的時候,送出到多人天梯系統中!
enemy = hero.findNearestEnemy()
if hero.isReady("cleave"):
hero.cleave(enemy)
elif hero.isReady("bash"):
hero.bash(enemy)
else:
hero.attack(enemy)
【挑戰更新】第37關:野外逃亡
子網頁:https://cn.codecombat.com/play/level/backwoods-brawl?
【未通關】
第38關:野馬
子網頁:https://cn.codecombat.com/play/level/wild-horses?
while True:
# 你怎麼尋找最近的友好機關?
# 馬=?
horse = hero.findNearest(hero.findFriends())
if horse:
x1 = horse.pos.x - 7
x2 = horse.pos.x + 7
if x1 >= 1:
# 移動到馬的y坐标,但使用x1作為x坐标。
hero.moveXY(x1, horse.pos.y)
elif x2 <= 79:
# 移動到馬的y坐标,但使用x2作為x坐标。
hero.moveXY(x2, horse.pos.y)
distance = hero.distanceTo(horse)
if distance <= 10:
hero.say("Whoa")
# 移到到紅色的x來使馬傳回農場。
hero.moveXY(27, 54)
# 移回牧場開始尋找下一匹馬。
【挑戰更新】第39關:邊遠寶藏
子網頁:https://cn.codecombat.com/play/level/backwoods-treasure?
# 從2~3個樹叢裡 收集100個金币
# 如果你赢了,接下來會變得更難,當然也會有更多獎勵。
# 如果你輸了,需要等待一天再次挑戰
# 記得,每一次送出都會獲得不同的地圖。
while True:
enemy = hero.findNearestEnemy()
item = hero.findNearestItem()
flag = hero.findFlag("green")
if flag:
hero.pickUpFlag(flag)
if enemy:
distance = hero.distanceTo(enemy)
if distance < 8:
if hero.isReady("cleave"):
hero.cleave(enemy)
elif hero.isReady("bash"):
hero.bash(enemy)
else:
hero.attack(enemy)
if item:
hero.moveXY(item.pos.x, item.pos.y)
【競技AI】第40關:多人寶藏
子網頁:https://cn.codecombat.com/play/level/multiplayer-treasure-grove?
# 當第一個收集100個金币的人!
# 如果你死了,重生的時候隻有原來67%的金币
while True:
# 找到金币并攻擊敵人
# 使用旗子和特殊的移動政策來赢得比賽!
flag = hero.findFlag()
item = hero.findNearestItem()
enemy = hero.findNearestEnemy()
if flag:
hero.pickUpFlag(flag)
elif item:
hero.moveXY(item.pos.x, item.pos.y)
elif enemy:
distance = hero.distanceTo(enemy)
if distance < 5:
hero.attack(enemy)
初學Python。
請多指教。
-----轉載請注明出處,否則作者有權追究法律責任。
轉載于:https://www.cnblogs.com/learningpython-xinersubai/p/7661466.html