-
Notifications
You must be signed in to change notification settings - Fork 225
Expand file tree
/
Copy pathc_noObservation.js
More file actions
76 lines (65 loc) · 1.93 KB
/
c_noObservation.js
File metadata and controls
76 lines (65 loc) · 1.93 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
71
72
73
74
75
76
class NoObservationDiagram {
constructor(selector, h, w, count) {
this.h = h;
this.w = w;
this.selector = d3.select(selector);
this.count = count;
this.worlds = [];
this.movesRecorder = new MovesRecorder(this.selector.select('.movesList'));
var diagramHeight = this.h / (count / 2);
var diagramWidth = this.w / 2;
this.selector.select('#canvasWrapper').selectAll('.canvas')
.data(new Array(count))
.enter()
.append('div')
.attr('class', (d, i) => {
return 'canvas' + i
})
.attr('height', diagramHeight)
.attr('width', diagramWidth)
.style('float', 'left')
.style('margin-right', '6%');
for (let i = 0; i < count; i++) {
this.worlds.push(new VacuumWorldDiagram(this.selector.select('.canvas' + i), diagramHeight, diagramWidth));
this.worlds[i].init(this.movesRecorder);
}
this.bindClicks();
}
reset() {
for (let i = 0; i < this.worlds.length; i++) {
this.worlds[i].reset();
}
}
playMoves() {
for (let i = 0; i < this.worlds.length; i++) {
this.worlds[i].playMoves();
}
}
bindClicks() {
this.selector.select('.left-button').on('click', () => {
this.movesRecorder.addLeft()
});
this.selector.select('.right-button').on('click', () => {
this.movesRecorder.addRight()
});
this.selector.select('.suck-button').on('click', () => {
this.movesRecorder.addSuck()
});
this.selector.select('.play-button').on('click', () => {
this.reset();
this.movesRecorder.markUndone();
this.playMoves();
});
this.selector.select('.clear-button').on('click', () => {
this.reset();
this.movesRecorder.clear();
});
}
}
$(document).ready(function() {
var init = function() {
var noObservationDiagram = new NoObservationDiagram('#noObservation', 400, 600, 8);
}
$('#noObservation .restart-button').on('click', init)
init();
})