def main(): #Config gameData = GameData() gameData.setupCLA() pygame.init() gameData.screen = pygame.display.set_mode((600, 600)) pygame.display.set_caption('Snake') gameData.appleimage = pygame.Surface((10, 10)) gameData.appleimage.fill((0, 255, 0)) gameData.img = pygame.Surface((20, 20)) gameData.img.fill((255, 0, 0)) gameData.font = pygame.font.SysFont('Arial', 20) if gameData.playData and gameData.loadData: replayRoutine( gameData ) if gameData.humanTrain and not gameData.trainPause: if gameData.loadWeights: playSnake = MLP(2, 1) loadWeights(playSnake,gameData) criterion = NLLLoss(gameData.lin1M) else: if gameData.loadData: gameData.interpretFromFile() playSnake = MLP(2, 1) playSnake.add(Linear( gameData.lin1M, gameData.lin1N)) playSnake.add(Sigmoid(gameData.lin1N)) playSnake.add(Linear(gameData.lin1N,gameData.lin2N)) playSnake.add(Softmax(gameData.lin2N)) criterion = NLLLoss(gameData.lin1M) train(np.asarray(gameData.trainData[:-2]), np.asarray(gameData.trainTargetOutput[1:]) , playSnake, criterion) print "Done Training" if gameData.customFileName != "": writeWeights(playSnake, gameData) aiGameRoutine( gameData, playSnake) else: regularGameRoutine( gameData )