讀古今文學網 > 父與子的編程之旅:與小卡特一起學Python > 26.3 更複雜的機器人 >

26.3 更複雜的機器人

我們的第一個機器人非常簡單,它無法戰勝 CircleAI。為了戰勝其他所有的機器人,我們需要一個真正優秀的策略。一個真正優秀的策略絕不止「轉圈圈,直到敵人出現在我眼前」這麼簡單,而是需要用到每一個可用的命令。最重要的是,真正優秀的策略需要我們花費大量心思來考慮它的工作機制。

還有一些方法我在上一節沒有提到,這些方法可以幫助我們制定一個必勝的策略。

  • self.robot.goBack ——顧名思義,機器人可以後退一步。

  • self.robot.checkSpace(space) ——可以檢查任意一個方塊 。例如,self.robot.checkSpace((3,3)) 可以返回 (3,3) 這個方塊處有什麼。如果什麼也沒有,則返回 "blank",否則,返回 "bot"(如果有敵人)、"me"(如果有機器人)或者 "wall"(如果這個方塊在遊戲邊界之外)。

  • self.robot.locateEnemy ——返回敵人的位置和方向。

  • self.robot.position ——獲取機器人的位置。

  • self.robot.rotation ——獲取機器人的方向。

  • self.robot.calculateCoordinates(direction, distance, position) —— 稍後解釋。首先,我們需要理解在 Python Battle 中,坐標系統是怎麼工作的。