Program learning to play Flappy Bird by machine learning (Neuroevolution)
3,995
stars
24
commits
JavaScript
primary language
Nov 23, 2023
updated
Program that learns to play Flappy Bird by machine learning (Neuroevolution)

// Initialize
var ne = new Neuroevolution({options});
//Default options values
var options = {
network:[1, [1], 1], // Perceptron structure
population:50, // Population by generation
elitism:0.2, // Best networks kepts unchanged for the next generation (rate)
randomBehaviour:0.2, // New random networks for the next generation (rate)
mutationRate:0.1, // Mutation rate on the weights of synapses
mutationRange:0.5, // Interval of the mutation changes on the synapse weight
historic:0, // Latest generations saved
lowHistoric:false, // Only save score (not the network)
scoreSort:-1, // Sort order (-1 = desc, 1 = asc)
nbChild:1 // number of child by breeding
}
//Update options at any time
ne.set({options});
// Generate first or next generation
var generation = ne.nextGeneration();
//When an network is over -> save this score
ne.networkScore(generation[x], <score = 0>);
You can see the NeuroEvolution integration in Flappy Bird in Game.js.
JavaScript
97.0%
HTML
3.0%
Program learning to play Flappy Bird by machine learning (Neuroevolution)
3,995
stars
24
commits
JavaScript
primary language
Nov 23, 2023
updated
Program that learns to play Flappy Bird by machine learning (Neuroevolution)

// Initialize
var ne = new Neuroevolution({options});
//Default options values
var options = {
network:[1, [1], 1], // Perceptron structure
population:50, // Population by generation
elitism:0.2, // Best networks kepts unchanged for the next generation (rate)
randomBehaviour:0.2, // New random networks for the next generation (rate)
mutationRate:0.1, // Mutation rate on the weights of synapses
mutationRange:0.5, // Interval of the mutation changes on the synapse weight
historic:0, // Latest generations saved
lowHistoric:false, // Only save score (not the network)
scoreSort:-1, // Sort order (-1 = desc, 1 = asc)
nbChild:1 // number of child by breeding
}
//Update options at any time
ne.set({options});
// Generate first or next generation
var generation = ne.nextGeneration();
//When an network is over -> save this score
ne.networkScore(generation[x], <score = 0>);
You can see the NeuroEvolution integration in Flappy Bird in Game.js.
JavaScript
97.0%
HTML
3.0%