-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathsketch.js
More file actions
70 lines (49 loc) · 1.65 KB
/
Copy pathsketch.js
File metadata and controls
70 lines (49 loc) · 1.65 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
var ai, c;
function setup() {
document.addEventListener('onFrame', function (e) {
let g = e.detail;
ai.setInput([g.ballPositionX+(g.ballWidth/2), g.racketPositionX+(g.racketWidth/2)]);
let result = ai.calculate()[0];
var go;
if (result>0.66) {
go = 'right';
} else if (result<0.33) {
go = 'left';
} else {
go = result;
}
Game.forceInput(go);
if (g.misses > 3) {
ai.nextSubject();
Game.resetGame();
}
if (g.status == 'hit') {
ai.addFitness();
}
//AI
document.getElementById('population').innerHTML = 'População: ' + ai.populationSize;
document.getElementById('subject').innerHTML = 'Sujeito: ' + ai.actualSubject;
document.getElementById('generation').innerHTML = 'Geração: ' + ai.generation;
document.getElementById('fitness').innerHTML = 'Fitness Atual: ' + ai.NeuralNetwork.hiddenLayer.getFitness();
c.resetChromosomes(ai.population);
c.addChromosomes(ai.population);
c.draw();
});
/*document.addEventListener('onResetBall', function (e) {
let g = e.detail;
});*/
document.addEventListener('onNewPopulation', function (e) {
let population = e.detail.population;
c.addChromosomes(population);
c.draw();
});
}
$(function () {
var nn = new NeuralNetwork(2, 5, 1, 0.2);
ai = new AI(nn, 7, .02, .2, 100);
ai.startLearning();
c = new DrawChromosomes(250, nn);
new Game();
setup();
//console.log(ai.populationSize);
});