Exemple #1
0
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 )