x = random.randint(0, self.width - 1) y = random.randint(0, self.height - 1) hp_w, lp_w = self.pathsolver.longest_path((x, y)) if hp_w: print('bad case: random chase, {}-th time'.format(i)) return lp_w[0] print('fall back to hell case.') return 'U' if __name__ == '__main__': dt = None with open('config.json', 'r') as f: dt = json.load(f) with open('output_9223372036568707794.log', 'r') as flog: data = flog.read() data = data.strip().split('\n') snake = Snake() snake.snakebody = [] for d in data: x, y = d.split(' ') x = int(x) y = int(y) snake.snakebody.append((x, y)) fruit = Fruit(dt) fruit.last_generate = (8, 0) solver = GreedySolver(snake, fruit, dt) print(solver.nextDirection())
return (x + delX, y + delY) def shortest_path_fruit(self): return self.shortest_path(self.fruit.where()) def longest_path_tail(self): return self.longest_path(self.snake.snakebody[-1]) if __name__ == '__main__': dt = None with open('config.json', 'r') as f: dt = json.load(f) with open('output_9223372036568707794.log', 'r') as flog: data = flog.read() data = data.strip().split('\n') snake = Snake() snake.snakebody = [] for d in data: x, y = d.split(' ') x = int(x) y = int(y) snake.snakebody.append((x, y)) fruit = Fruit(dt) fruit.last_generate = (3, 8) solver = PathSolve(snake, fruit, dt) # print(solver.longest_path(fruit.where())) print(solver.longest_path(snake.snakebody[-1]))