Документ взят из кэша поисковой машины. Адрес оригинального документа : http://kodomo.fbb.msu.ru/hg/snake/rev/5d7d9c19b6c2
Дата изменения: Unknown
Дата индексирования: Mon Oct 1 23:58:44 2012
Кодировка:
snake: 5d7d9c19b6c2

snake

changeset 90:5d7d9c19b6c2

engine.legal_moves added random shuffle + engine.move_do() added
author Alex Martynov
date Mon, 20 Dec 2010 01:49:55 +0300
parents 8710bd47d223
children e30120142560
files engine.py
diffstat 1 files changed, 13 insertions(+), 17 deletions(-) [+]
line diff
     1.1 --- a/engine.py	Mon Dec 20 01:39:38 2010 +0300
     1.2 +++ b/engine.py	Mon Dec 20 01:49:55 2010 +0300
     1.3 @@ -96,28 +96,24 @@
     1.4                      pass
     1.5              else:
     1.6                  dir_cell = self.field[snake.cells[0].y + applied_dir[0], snake.cells[0].x + applied_dir[1]]
     1.7 -                if dir_cell.type == 'empty':
     1.8 -                    snake.cells.insert(0,dir_cell)
     1.9 -                    del snake.cells[-1]
    1.10 -                    pass
    1.11 -                elif (dir_cell.type == 'tail' and dir_cell.snake != snake):
    1.12 -                    snake.cells.insert(0,dir_cell)
    1.13 -                    del dir_cell.snake.cells[-1]
    1.14 -                    pass
    1.15 +                self.move_do()
    1.16                  break
    1.17          if applied_dir == None:
    1.18              applied_dir = snake.legal_dir[int(rnd.random()*len(snake.legal_dir))]
    1.19              dir_cell = self.field[snake.cells[0].y + applied_dir[0], snake.cells[0].x + applied_dir[1]]
    1.20 -            if dir_cell.type == 'empty':
    1.21 -                snake.cells.insert(0,dir_cell)
    1.22 -                del snake.cells[-1]
    1.23 -                pass
    1.24 -            elif (dir_cell.type == 'tail' and dir_cell.snake != snake):
    1.25 -                snake.cells.insert(0,dir_cell)
    1.26 -                del dir_cell.snake.cells[-1]
    1.27 -                pass
    1.28 +            self.move_do()
    1.29              pass
    1.30          return
    1.31 +    def move_do(self, snake, dir_cell):
    1.32 +        if dir_cell.type == 'empty':
    1.33 +            snake.cells.insert(0,dir_cell)
    1.34 +            del snake.cells[-1]
    1.35 +            pass
    1.36 +        elif (dir_cell.type == 'tail' and dir_cell.snake != snake):
    1.37 +            snake.cells.insert(0,dir_cell)
    1.38 +            del dir_cell.snake.cells[-1]
    1.39 +            pass
    1.40 +
    1.41      def create_snake(self, snake_number):
    1.42          cells_id = []
    1.43          for y in range(10):
    1.44 @@ -159,6 +155,6 @@
    1.45              dir_cell = self.field[snake.cells[0].y + direction[0], snake.cells[0].x + direction[1]]
    1.46              if (dir_cell.type == 'empty' or (dir_cell.type == 'tail' and dir_cell.snake != snake)):
    1.47                  snake.legal_dir.append(direction)
    1.48 -                return
    1.49 +        rnd.shuffle(snake.legal_dir)
    1.50          return
    1.51