import sys from creatures import Dragon import mpi from math import * import traceback from util import * # Move to a corner and spit fire class FraidyDragon2(Dragon): def __init__(self): self.homex = None self.homey = None # self.Actions # GetBreath # GetFlyingDirection # GetFlyingPosition # ScanHorizon [Range] # SetFlyingDirection [self.Direction.East, self.Direction.NorthEast, etc.] # self.Direction.ToString(), self.Direction.FromString() # BreatheFire [Power] # Fly [distance] def action(self): if self.homex is None: self.homex,self.homey = doMpi(self,self.Actions.GetBoard,[]) pos = doMpi(self,self.Actions.GetFlyingPosition,[]) x,y = (pos.x,pos.y) if x == self.homex and y == self.homey: doMpi(self,self.Actions.SetFlyingDirection,[(-1, 0)]) doMpi(self,self.Actions.BreatheFire,[10]) doMpi(self,self.Actions.SetFlyingDirection,[(-1,-1)]) doMpi(self,self.Actions.BreatheFire,[10]) doMpi(self,self.Actions.SetFlyingDirection,[( 0,-1)]) doMpi(self,self.Actions.BreatheFire,[10]) else: fdir = doMpi(self,self.Actions.GetFlyingDirection,[]) res = moveTo(self,fdir,x,y,self.homex,self.homey) for r in res: doMpi(self,r[0],r[1])