Ejemplo n.º 1
0
 def down(self):
     if self.y >= len(self.map):
         return variable('int', '', 0)
     if (self.x + self.y) % 2 == 0:
         if self.map[self.y + 1][self.x].type != 'wall':
             self.y += 1
             return variable('int', '', -1)
     return variable('int', '', 0)
Ejemplo n.º 2
0
 def right(self):
     if self.x >= len(self.map[0]):
         return variable('int', '', 0)
     else:
         if self.map[self.y][self.x + 1].type != 'wall':
             self.x += 1
             return variable('int', '', 1)
     return variable('int', '', 0)
Ejemplo n.º 3
0
 def left(self):
     if self.x <= 0:
         return variable('int', '', 0)
     else:
         if self.map[self.y][self.x - 1].type != 'wall':
             self.x -= 1
             return variable('int', '', -1)
     return variable('int', '', 0)
Ejemplo n.º 4
0
 def up(self):
     if self.y <= 0:
         return variable('int', '', 0)
     if (self.x + self.y) % 2 == 0:
         return variable('int', '', 0)
     else:
         if self.map[self.y - 1][self.x].type != 'wall':
             self.y -= 1
             return variable('int', '', 1)
     return variable('int', '', 0)
Ejemplo n.º 5
0
 def move(self, direction):
     if direction == 'move':
         if (self.x+self.y) % 2 == 0:
             return self.down()
         else:
             return self.up()
     elif direction == 'left':
         return self.left()
     elif direction == 'right':
         return self.right()
     else:
         return variable('int', '', 0)
Ejemplo n.º 6
0
 def lms(self):
     dist = 1
     length = 5
     if self._right:
         while self.map[self.y][self.x+dist].type == 'empty':
             if length == 0:
                 return variable('int', '', 0)
             dist += 1
             length -= 1
         if self.map[self.y][self.x+dist].type == 'exit':
             return variable('int', '', -dist)
         elif self.map[self.y][self.x+dist].type == 'wall':
             return variable('int', '', dist)
     else:  # left side
         while self.map[self.y][self.x-dist].type == 'empty':
             if length == 0:
                 return variable('int', '', 0)
             dist += 1
             length -= 1
         if self.map[self.y][self.x+dist].type == 'exit':
             return variable('int', '', dist)
         elif self.map[self.y][self.x+dist].type == 'wall':
             return variable('int', '', -dist)