import Vec class Snake: cells = [] heading = Vec.up def __init__(self, cells): self.cells = cells def move(self): self.cells.pop() self.cells.insert(0, self.cells[0] + self.heading) def headInTail(self): res = False for i in range(1, len(self.cells)): res = res or (self.cells[0] == self.cells[i]) return res def head(self): return self.cells[0]