-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathlearn.js
86 lines (77 loc) · 22.5 KB
/
learn.js
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
77
78
79
80
81
82
83
84
85
const t = tf.tensor([1, 2, 3])
var trainingSet = []
function addToTrainingSet(set){
trainingSet.push(set);
}
//const ts1 = [{"puck.x":245,"puck.y":359,"opp g.x":245,"opp g.y":917,"opp c.x":245,"opp c.y":672,"opp lf.x":94,"opp lf.y":699,"opp rf.x":384,"opp rf.y":692,"opp lb.x":158,"opp lb.y":841,"opp rb.x":343,"opp rb.y":847,"own g.x":245,"own g.y":917,"own c.x":245,"own c.y":392,"own lf.x":64,"own lf.y":367,"own rf.x":425,"own rf.y":367,"own lb.x":124,"own lb.y":505,"own rb.x":365,"own rb.y":505},{"puck.x":240,"puck.y":258,"opp g.x":245,"opp g.y":917,"opp c.x":245,"opp c.y":772,"opp lf.x":148,"opp lf.y":738,"opp rf.x":348,"opp rf.y":749,"opp lb.x":185,"opp lb.y":869,"opp rb.x":311,"opp rb.y":870,"own g.x":245,"own g.y":917,"own c.x":244,"own c.y":292,"own lf.x":63,"own lf.y":212,"own rf.x":426,"own rf.y":212,"own lb.x":123,"own lb.y":405,"own rb.x":365,"own rb.y":405},{"puck.x":245,"puck.y":153,"opp g.x":245,"opp g.y":917,"opp c.x":245,"opp c.y":877,"opp lf.x":134,"opp lf.y":799,"opp rf.x":347,"opp rf.y":781,"opp lb.x":190,"opp lb.y":895,"opp rb.x":294,"opp rb.y":897,"own g.x":245,"own g.y":917,"own c.x":246,"own c.y":199,"own lf.x":197,"own lf.y":147,"own rf.x":290,"own rf.y":148,"own lb.x":123,"own lb.y":282,"own rb.x":379,"own rb.y":274},{"puck.x":121,"puck.y":175,"opp g.x":230,"opp g.y":917,"opp c.x":251,"opp c.y":865,"opp lf.x":153,"opp lf.y":722,"opp rf.x":363,"opp rf.y":736,"opp lb.x":151,"opp lb.y":861,"opp rb.x":363,"opp rb.y":856,"own g.x":245,"own g.y":917,"own c.x":250,"own c.y":224,"own lf.x":112,"own lf.y":204,"own rf.x":375,"own rf.y":168,"own lb.x":61,"own lb.y":319,"own rb.x":413,"own rb.y":317},{"puck.x":357,"puck.y":184,"opp g.x":230,"opp g.y":917,"opp c.x":251,"opp c.y":865,"opp lf.x":153,"opp lf.y":722,"opp rf.x":363,"opp rf.y":736,"opp lb.x":151,"opp lb.y":861,"opp rb.x":363,"opp rb.y":856,"own g.x":245,"own g.y":917,"own c.x":248,"own c.y":314,"own lf.x":160,"own lf.y":176,"own rf.x":368,"own rf.y":213,"own lb.x":127,"own lb.y":314,"own rb.x":447,"own rb.y":90},{"puck.x":358,"puck.y":28,"opp g.x":230,"opp g.y":917,"opp c.x":251,"opp c.y":865,"opp lf.x":153,"opp lf.y":722,"opp rf.x":363,"opp rf.y":736,"opp lb.x":151,"opp lb.y":861,"opp rb.x":363,"opp rb.y":856,"own g.x":245,"own g.y":917,"own c.x":248,"own c.y":159,"own lf.x":126,"own lf.y":61,"own rf.x":368,"own rf.y":63,"own lb.x":65,"own lb.y":224,"own rb.x":431,"own rb.y":220},{"puck.x":174,"puck.y":24,"opp g.x":230,"opp g.y":917,"opp c.x":248,"opp c.y":880,"opp lf.x":103,"opp lf.y":833,"opp rf.x":365,"opp rf.y":829,"opp lb.x":126,"opp lb.y":983,"opp rb.x":363,"opp rb.y":983,"own g.x":245,"own g.y":917,"own c.x":248,"own c.y":154,"own lf.x":161,"own lf.y":60,"own rf.x":323,"own rf.y":62,"own lb.x":164,"own lb.y":253,"own rb.x":338,"own rb.y":253},{"puck.x":245,"puck.y":19,"opp g.x":245,"opp g.y":917,"opp c.x":248,"opp c.y":880,"opp lf.x":102,"opp lf.y":856,"opp rf.x":376,"opp rf.y":826,"opp lb.x":126,"opp lb.y":983,"opp rb.x":363,"opp rb.y":983,"own g.x":245,"own g.y":917,"own c.x":203,"own c.y":153,"own lf.x":156,"own lf.y":57,"own rf.x":269,"own rf.y":46,"own lb.x":109,"own lb.y":246,"own rb.x":371,"own rb.y":215},{"puck.x":24,"puck.y":323,"opp g.x":230,"opp g.y":917,"opp c.x":269,"opp c.y":811,"opp lf.x":128,"opp lf.y":687,"opp rf.x":422,"opp rf.y":726,"opp lb.x":147,"opp lb.y":882,"opp rb.x":349,"opp rb.y":870,"own g.x":245,"own g.y":917,"own c.x":244,"own c.y":387,"own lf.x":19,"own lf.y":352,"own rf.x":376,"own rf.y":260,"own lb.x":126,"own lb.y":516,"own rb.x":363,"own rb.y":515},{"puck.x":451,"puck.y":342,"opp g.x":230,"opp g.y":917,"opp c.x":239,"opp c.y":818,"opp lf.x":108,"opp lf.y":732,"opp rf.x":352,"opp rf.y":752,"opp lb.x":115,"opp lb.y":870,"opp rb.x":349,"opp rb.y":870,"own g.x":245,"own g.y":917,"own c.x":255,"own c.y":399,"own lf.x":119,"own lf.y":308,"own rf.x":457,"own rf.y":372,"own lb.x":141,"own lb.y":481,"own rb.x":374,"own rb.y":486},{"puck.x":62,"puck.y":501,"opp g.x":245,"opp g.y":917,"opp c.x":241,"opp c.y":633,"opp lf.x":79,"opp lf.y":502,"opp rf.x":434,"opp rf.y":532,"opp lb.x":65,"opp lb.y":680,"opp rb.x":356,"opp rb.y":725,"own g.x":245,"own g.y":917,"own c.x":251,"own c.y":524,"own lf.x":61,"own lf.y":529,"own rf.x":452,"own rf.y":
//372,"own lb.x":143,"own lb.y":686,"own rb.x":345,"own rb.y":686},{"puck.x":464,"puck.y":508,"opp g.x":245,"opp g.y":917,"opp c.x":194,"opp c.y":619,"opp lf.x":17,"opp lf.y":528,"opp rf.x":381,"opp rf.y":513,"opp lb.x":103,"opp lb.y":687,"opp rb.x":310,"opp rb.y":670,"own g.x":245,"own g.y":917,"own c.x":248,"own c.y":499,"own lf.x":95,"own lf.y":367,"own rf.x":467,"own rf.y":536,"own lb.x":141,"own lb.y":578,"own rb.x":339,"own rb.y":606},{"puck.x":247,"puck.y":648,"opp g.x":245,"opp g.y":917,"opp c.x":238,"opp c.y":384,"opp lf.x":56,"opp lf.y":340,"opp rf.x":428,"opp rf.y":345,"opp lb.x":117,"opp lb.y":502,"opp rb.x":362,"opp rb.y":500,"own g.x":245,"own g.y":917,"own c.x":248,"own c.y":679,"own lf.x":65,"own lf.y":597,"own rf.x":430,"own rf.y":596,"own lb.x":127,"own lb.y":793,"own rb.x":364,"own rb.y":791},{"puck.x":245,"puck.y":833,"opp g.x":245,"opp g.y":917,"opp c.x":245,"opp c.y":202,"opp lf.x":143,"opp lf.y":187,"opp rf.x":338,"opp rf.y":175,"opp lb.x":80,"opp lb.y":367,"opp rb.x":367,"opp rb.y":365,"own g.x":245,"own g.y":917,"own c.x":248,"own c.y":864,"own lf.x":129,"own lf.y":732,"own rf.x":377,"own rf.y":722,"own lb.x":164,"own lb.y":861,"own rb.x":331,"own rb.y":854},{"puck.x":122,"puck.y":828,"opp g.x":245,"opp g.y":917,"opp c.x":249,"opp c.y":252,"opp lf.x":171,"opp lf.y":99,"opp rf.x":373,"opp rf.y":201,"opp lb.x":43,"opp lb.y":334,"opp rb.x":445,"opp rb.y":338,"own g.x":230,"own g.y":917,"own c.x":220,"own c.y":864,"own lf.x":89,"own lf.y":723,"own rf.x":358,"own rf.y":716,"own lb.x":109,"own lb.y":855,"own rb.x":331,"own rb.y":854},{"puck.x":368,"puck.y":830,"opp g.x":245,"opp g.y":917,"opp c.x":239,"opp c.y":260,"opp lf.x":115,"opp lf.y":199,"opp rf.x":331,"opp rf.y":133,"opp lb.x":19,"opp lb.y":334,"opp rb.x":413,"opp rb.y":342,"own g.x":230,"own g.y":917,"own c.x":245,"own c.y":864,"own lf.x":119,"own lf.y":767,"own rf.x":393,"own rf.y":714,"own lb.x":165,"own lb.y":900,"own rb.x":344,"own rb.y":870},{"puck.x":408,"puck.y":965,"opp g.x":245,"opp g.y":917,"opp c.x":241,"opp c.y":165,"opp lf.x":59,"opp lf.y":50,"opp rf.x":297,"opp rf.y":27,"opp lb.x":159,"opp lb.y":234,"opp rb.x":340,"opp rb.y":205,"own g.x":230,"own g.y":917,"own c.x":245,"own c.y":864,"own lf.x":133,"own lf.y":831,"own rf.x":394,"own rf.y":817,"own lb.x":128,"own lb.y":931,"own rb.x":378,"own rb.y":974}];
const ts1 = [{"puck.x":245,"puck.y":500,"opp g.x":245,"opp g.y":917,"opp c.x":245,"opp c.y":532,"opp lf.x":114,"opp lf.y":532,"opp rf.x":375,"opp rf.y":532,"opp lb.x":179,"opp lb.y":630,"opp rb.x":310,"opp rb.y":630,"own g.x":245,"own g.y":917,"own c.x":245,"own c.y":532,"own lf.x":114,"own lf.y":532,"own rf.x":375,"own rf.y":532,"own lb.x":179,"own lb.y":630,"own rb.x":310,"own rb.y":630},{"puck.x":213,"puck.y":485,"opp g.x":245,"opp g.y":917,"opp c.x":275,"opp c.y":544,"opp lf.x":70,"opp lf.y":467,"opp rf.x":419,"opp rf.y":467,"opp lb.x":139,"opp lb.y":661,"opp rb.x":380,"opp rb.y":658,"own g.x":245,"own g.y":917,"own c.x":215,"own c.y":520,"own lf.x":54,"own lf.y":437,"own rf.x":435,"own rf.y":437,"own lb.x":109,"own lb.y":630,"own rb.x":350,"own rb.y":630},{"puck.x":173,"puck.y":484,"opp g.x":245,"opp g.y":917,"opp c.x":315,"opp c.y":544,"opp lf.x":75,"opp lf.y":467,"opp rf.x":414,"opp rf.y":467,"opp lb.x":154,"opp lb.y":661,"opp rb.x":400,"opp rb.y":659,"own g.x":245,"own g.y":917,"own c.x":175,"own c.y":520,"own lf.x":44,"own lf.y":437,"own rf.x":445,"own rf.y":437,"own lb.x":89,"own lb.y":630,"own rb.x":335,"own rb.y":630},{"puck.x":126,"puck.y":482,"opp g.x":245,"opp g.y":917,"opp c.x":175,"opp c.y":544,"opp lf.x":75,"opp lf.y":467,"opp rf.x":414,"opp rf.y":467,"opp lb.x":89,"opp lb.y":661,"opp rb.x":335,"opp rb.y":659,"own g.x":245,"own g.y":917,"own c.x":243,"own c.y":610,"own lf.x":115,"own lf.y":512,"own rf.x":375,"own rf.y":403,"own lb.x":179,"own lb.y":674,"own rb.x":309,"own rb.y":675},{"puck.x":72,"puck.y":480,"opp g.x":245,"opp g.y":917,"opp c.x":315,"opp c.y":544,"opp lf.x":75,"opp lf.y":467,"opp rf.x":414,"opp rf.y":467,"opp lb.x":154,"opp lb.y":661,"opp rb.x":400,"opp rb.y":659,"own g.x":245,"own g.y":917,"own c.x":243,"own c.y":610,"own lf.x":65,"own lf.y":512,"own rf.x":425,"own rf.y":403,"own lb.x":154,"own lb.y":674,"own rb.x":334,"own rb.y":675},{"puck.x":39,"puck.y":479,"opp g.x":245,"opp g.y":917,"opp c.x":175,"opp c.y":544,"opp lf.x":75,"opp lf.y":467,"opp rf.x":414,"opp rf.y":467,"opp lb.x":89,"opp lb.y":661,"opp rb.x":335,"opp rb.y":659,"own g.x":245,"own g.y":917,"own c.x":243,"own c.y":610,"own lf.x":30,"own lf.y":512,"own rf.x":455,"own rf.y":403,"own lb.x":139,"own lb.y":674,"own rb.x":349,"own rb.y":675},{"puck.x":15,"puck.y":479,"opp g.x":245,"opp g.y":917,"opp c.x":315,"opp c.y":544,"opp lf.x":75,"opp lf.y":467,"opp rf.x":414,"opp rf.y":467,"opp lb.x":154,"opp lb.y":661,"opp rb.x":400,"opp rb.y":659,"own g.x":245,"own g.y":917,"own c.x":243,"own c.y":610,"own lf.x":16,"own lf.y":512,"own rf.x":473,"own rf.y":403,"own lb.x":129,"own lb.y":674,"own rb.x":364,"own rb.y":675},{"puck.x":15,"puck.y":435,"opp g.x":245,"opp g.y":917,"opp c.x":175,"opp c.y":544,"opp lf.x":75,"opp lf.y":467,"opp rf.x":414,"opp rf.y":467,"opp lb.x":89,"opp lb.y":661,"opp rb.x":335,"opp rb.y":659,"own g.x":245,"own g.y":917,"own c.x":243,"own c.y":565,"own lf.x":16,"own lf.y":467,"own rf.x":473,"own rf.y":368,"own lb.x":129,"own lb.y":634,"own rb.x":364,"own rb.y":630},{"puck.x":18,"puck.y":403,"opp g.x":245,"opp g.y":917,"opp c.x":315,"opp c.y":544,"opp lf.x":75,"opp lf.y":467,"opp rf.x":414,"opp rf.y":467,"opp lb.x":154,"opp lb.y":661,"opp rb.x":400,"opp rb.y":659,"own g.x":245,"own g.y":917,"own c.x":243,"own c.y":535,"own lf.x":16,"own lf.y":437,"own rf.x":473,"own rf.y":368,"own lb.x":129,"own lb.y":599,"own rb.x":364,"own rb.y":600},{"puck.x":16,"puck.y":366,"opp g.x":245,"opp g.y":917,"opp c.x":175,"opp c.y":544,"opp lf.x":75,"opp lf.y":467,"opp rf.x":414,"opp rf.y":467,"opp lb.x":89,"opp lb.y":661,"opp rb.x":335,"opp rb.y":659,"own g.x":245,"own g.y":917,"own c.x":243,"own c.y":500,"own lf.x":16,"own lf.y":402,"own rf.x":473,"own rf.y":368,"own lb.x":129,"own lb.y":564,"own rb.x":364,"own rb.y":565},{"puck.x":21,"puck.y":313,"opp g.x":230,"opp g.y":917,"opp c.x":315,"opp c.y":544,"opp lf.x":75,"opp lf.y":467,"opp rf.x":414,"opp rf.y":467,"opp lb.x":154,"opp lb.y":661,"opp rb.x":400,"opp rb.y":659,"own g.x":245,"own g.y":917,"own c.x":243,"own c.y":445,"own lf.x":16,"own lf.y":347,"own rf.x":473,"own rf.y":278,
"own lb.x":129,"own lb.y":509,"own rb.x":364,"own rb.y":510},{"puck.x":17,"puck.y":262,"opp g.x":230,"opp g.y":917,"opp c.x":175,"opp c.y":544,"opp lf.x":75,"opp lf.y":467,"opp rf.x":414,"opp rf.y":467,"opp lb.x":89,"opp lb.y":661,"opp rb.x":335,"opp rb.y":659,"own g.x":245,"own g.y":917,"own c.x":243,"own c.y":395,"own lf.x":16,"own lf.y":297,"own rf.x":473,"own rf.y":238,"own lb.x":129,"own lb.y":459,"own rb.x":364,"own rb.y":460},{"puck.x":14,"puck.y":221,"opp g.x":230,"opp g.y":917,"opp c.x":315,"opp c.y":544,"opp lf.x":75,"opp lf.y":467,"opp rf.x":414,"opp rf.y":467,"opp lb.x":154,"opp lb.y":661,"opp rb.x":400,"opp rb.y":659,"own g.x":245,"own g.y":917,"own c.x":243,"own c.y":355,"own lf.x":16,"own lf.y":257,"own rf.x":473,"own rf.y":208,"own lb.x":129,"own lb.y":419,"own rb.x":364,"own rb.y":420},{"puck.x":19,"puck.y":169,"opp g.x":230,"opp g.y":917,"opp c.x":175,"opp c.y":544,"opp lf.x":75,"opp lf.y":467,"opp rf.x":414,"opp rf.y":467,"opp lb.x":89,"opp lb.y":661,"opp rb.x":335,"opp rb.y":659,"own g.x":245,"own g.y":917,"own c.x":243,"own c.y":300,"own lf.x":16,"own lf.y":202,"own rf.x":473,"own rf.y":168,"own lb.x":129,"own lb.y":364,"own rb.x":364,"own rb.y":365},{"puck.x":20,"puck.y":134,"opp g.x":230,"opp g.y":917,"opp c.x":315,"opp c.y":544,"opp lf.x":75,"opp lf.y":467,"opp rf.x":414,"opp rf.y":467,"opp lb.x":154,"opp lb.y":661,"opp rb.x":400,"opp rb.y":659,"own g.x":245,"own g.y":917,"own c.x":243,"own c.y":265,"own lf.x":16,"own lf.y":167,"own rf.x":473,"own rf.y":143,"own lb.x":129,"own lb.y":329,"own rb.x":364,"own rb.y":330},{"puck.x":28,"puck.y":76,"opp g.x":230,"opp g.y":917,"opp c.x":175,"opp c.y":544,"opp lf.x":75,"opp lf.y":467,"opp rf.x":414,"opp rf.y":467,"opp lb.x":89,"opp lb.y":661,"opp rb.x":335,"opp rb.y":659,"own g.x":245,"own g.y":917,"own c.x":243,"own c.y":210,"own lf.x":16,"own lf.y":112,"own rf.x":473,"own rf.y":98,"own lb.x":129,"own lb.y":274,"own rb.x":361,"own rb.y":275},{"puck.x":87,"puck.y":21,"opp g.x":230,"opp g.y":917,"opp c.x":315,"opp c.y":544,"opp lf.x":75,"opp lf.y":467,"opp rf.x":414,"opp rf.y":467,"opp lb.x":154,"opp lb.y":661,"opp rb.x":400,"opp rb.y":659,"own g.x":245,"own g.y":917,"own c.x":243,"own c.y":155,"own lf.x":47,"own lf.y":75,"own rf.x":398,"own rf.y":34,"own lb.x":160,"own lb.y":219,"own rb.x":330,"own rb.y":220},{"puck.x":146,"puck.y":22,"opp g.x":230,"opp g.y":917,"opp c.x":175,"opp c.y":544,"opp lf.x":75,"opp lf.y":467,"opp rf.x":414,"opp rf.y":467,"opp lb.x":89,"opp lb.y":661,"opp rb.x":335,"opp rb.y":659,"own g.x":245,"own g.y":917,"own c.x":243,"own c.y":155,"own lf.x":137,"own lf.y":58,"own rf.x":353,"own rf.y":54,"own lb.x":70,"own lb.y":219,"own rb.x":420,"own rb.y":220},{"puck.x":219,"puck.y":31,"opp g.x":235,"opp g.y":917,"opp c.x":315,"opp c.y":544,"opp lf.x":75,"opp lf.y":467,"opp rf.x":414,"opp rf.y":467,"opp lb.x":154,"opp lb.y":661,"opp rb.x":400,"opp rb.y":659,"own g.x":245,"own g.y":917,"own c.x":258,"own c.y":159,"own lf.x":207,"own lf.y":59,"own rf.x":308,"own rf.y":60,"own lb.x":105,"own lb.y":223,"own rb.x":400,"own rb.y":223},{"puck.x":202,"puck.y":94,"opp g.x":230,"opp g.y":917,"opp c.x":175,"opp c.y":544,"opp lf.x":75,"opp lf.y":467,"opp rf.x":414,"opp rf.y":467,"opp lb.x":89,"opp lb.y":661,"opp rb.x":335,"opp rb.y":659,"own g.x":245,"own g.y":917,"own c.x":248,"own c.y":224,"own lf.x":197,"own lf.y":124,"own rf.x":299,"own rf.y":110,"own lb.x":100,"own lb.y":288,"own rb.x":396,"own rb.y":288},{"puck.x":166,"puck.y":104,"opp g.x":230,"opp g.y":917,"opp c.x":315,"opp c.y":544,"opp lf.x":75,"opp lf.y":467,"opp rf.x":414,"opp rf.y":467,"opp lb.x":154,"opp lb.y":661,"opp rb.x":400,"opp rb.y":659,"own g.x":245,"own g.y":917,"own c.x":248,"own c.y":234,"own lf.x":157,"own lf.y":133,"own rf.x":329,"own rf.y":115,"own lb.x":80,"own lb.y":296,"own rb.x":411,"own rb.y":296},{"puck.x":105,"puck.y":113,"opp g.x":230,"opp g.y":917,"opp c.x":175,"opp c.y":544,"opp lf.x":75,"opp lf.y":467,"opp rf.x":414,"opp rf.y":467,"opp lb.x":89,"opp lb.y":661,"opp rb.x":335,"opp rb.y":659,"own g.x":245,"own g.y":917,"own c.x":248,"own c.y":244,"own lf.x":97,"own lf.y"
:141,"own rf.x":389,"own rf.y":121,"own lb.x":170,"own lb.y":305,"own rb.x":321,"own rb.y":305},{"puck.x":90,"puck.y":181,"opp g.x":230,"opp g.y":917,"opp c.x":315,"opp c.y":544,"opp lf.x":75,"opp lf.y":467,"opp rf.x":414,"opp rf.y":467,"opp lb.x":154,"opp lb.y":661,"opp rb.x":400,"opp rb.y":659,"own g.x":245,"own g.y":917,"own c.x":248,"own c.y":309,"own lf.x":85,"own lf.y":211,"own rf.x":404,"own rf.y":176,"own lb.x":167,"own lb.y":375,"own rb.x":322,"own rb.y":375},{"puck.x":132,"puck.y":182,"opp g.x":230,"opp g.y":917,"opp c.x":175,"opp c.y":544,"opp lf.x":75,"opp lf.y":467,"opp rf.x":414,"opp rf.y":467,"opp lb.x":89,"opp lb.y":661,"opp rb.x":335,"opp rb.y":659,"own g.x":245,"own g.y":917,"own c.x":248,"own c.y":309,"own lf.x":120,"own lf.y":211,"own rf.x":369,"own rf.y":176,"own lb.x":62,"own lb.y":375,"own rb.x":427,"own rb.y":375},{"puck.x":185,"puck.y":176,"opp g.x":260,"opp g.y":917,"opp c.x":302,"opp c.y":854,"opp lf.x":75,"opp lf.y":772,"opp rf.x":414,"opp rf.y":772,"opp lb.x":148,"opp lb.y":971,"opp rb.x":394,"opp rb.y":969,"own g.x":245,"own g.y":917,"own c.x":188,"own c.y":209,"own lf.x":45,"own lf.y":126,"own rf.x":439,"own rf.y":129,"own lb.x":91,"own lb.y":325,"own rb.x":337,"own rb.y":325},{"puck.x":212,"puck.y":176,"opp g.x":260,"opp g.y":917,"opp c.x":277,"opp c.y":854,"opp lf.x":70,"opp lf.y":772,"opp rf.x":419,"opp rf.y":772,"opp lb.x":138,"opp lb.y":971,"opp rb.x":384,"opp rb.y":969,"own g.x":245,"own g.y":917,"own c.x":208,"own c.y":209,"own lf.x":50,"own lf.y":126,"own rf.x":439,"own rf.y":129,"own lb.x":106,"own lb.y":325,"own rb.x":347,"own rb.y":325},{"puck.x":246,"puck.y":181,"opp g.x":245,"opp g.y":917,"opp c.x":247,"opp c.y":854,"opp lf.x":60,"opp lf.y":772,"opp rf.x":429,"opp rf.y":772,"opp lb.x":123,"opp lb.y":969,"opp rb.x":369,"opp rb.y":969,"own g.x":245,"own g.y":917,"own c.x":243,"own c.y":209,"own lf.x":60,"own lf.y":129,"own rf.x":429,"own rf.y":129,"own lb.x":121,"own lb.y":325,"own rb.x":367,"own rb.y":325},{"puck.x":244,"puck.y":253,"opp g.x":245,"opp g.y":917,"opp c.x":247,"opp c.y":779,"opp lf.x":60,"opp lf.y":697,"opp rf.x":429,"opp rf.y":697,"opp lb.x":123,"opp lb.y":894,"opp rb.x":369,"opp rb.y":894,"own g.x":245,"own g.y":917,"own c.x":243,"own c.y":284,"own lf.x":60,"own lf.y":204,"own rf.x":429,"own rf.y":204,"own lb.x":121,"own lb.y":400,"own rb.x":367,"own rb.y":395},{"puck.x":194,"puck.y":255,"opp g.x":260,"opp g.y":917,"opp c.x":292,"opp c.y":779,"opp lf.x":70,"opp lf.y":697,"opp rf.x":419,"opp rf.y":697,"opp lb.x":148,"opp lb.y":894,"opp rb.x":389,"opp rb.y":894,"own g.x":245,"own g.y":917,"own c.x":193,"own c.y":284,"own lf.x":50,"own lf.y":204,"own rf.x":439,"own rf.y":204,"own lb.x":101,"own lb.y":400,"own rb.x":342,"own rb.y":398},{"puck.x":142,"puck.y":254,"opp g.x":230,"opp g.y":917,"opp c.x":197,"opp c.y":779,"opp lf.x":70,"opp lf.y":697,"opp rf.x":419,"opp rf.y":697,"opp lb.x":98,"opp lb.y":894,"opp rb.x":344,"opp rb.y":894,"own g.x":245,"own g.y":917,"own c.x":242,"own c.y":384,"own lf.x":130,"own lf.y":283,"own rf.x":359,"own rf.y":228,"own lb.x":70,"own lb.y":450,"own rb.x":422,"own rb.y":446},{"puck.x":130,"puck.y":326,"opp g.x":230,"opp g.y":917,"opp c.x":292,"opp c.y":779,"opp lf.x":70,"opp lf.y":697,"opp rf.x":419,"opp rf.y":697,"opp lb.x":148,"opp lb.y":894,"opp rb.x":389,"opp rb.y":894,"own g.x":245,"own g.y":917,"own c.x":242,"own c.y":454,"own lf.x":125,"own lf.y":358,"own rf.x":364,"own rf.y":283,"own lb.x":180,"own lb.y":519,"own rb.x":307,"own rb.y":518},{"puck.x":178,"puck.y":328,"opp g.x":260,"opp g.y":917,"opp c.x":307,"opp c.y":704,"opp lf.x":73,"opp lf.y":622,"opp rf.x":416,"opp rf.y":622,"opp lb.x":151,"opp lb.y":819,"opp rb.x":397,"opp rb.y":819,"own g.x":245,"own g.y":917,"own c.x":180,"own c.y":359,"own lf.x":45,"own lf.y":279,"own rf.x":444,"own rf.y":282,"own lb.x":90,"own lb.y":477,"own rb.x":332,"own rb.y":478},{"puck.x":224,"puck.y":330,"opp g.x":255,"opp g.y":917,"opp c.x":267,"opp c.y":704,"opp lf.x":68,"opp lf.y":622,"opp rf.x":421,"opp rf.y":622,"opp lb.x":136,"opp lb.y":819,"opp rb.x":382,"opp rb.y":819,"own g.x":245,"own g.y":917,"own c.x":220,"own c.y":359,"own lf.x":55,"own lf.y":279,"own rf.x":434,"own rf.y":282,"own lb.x":110,"own lb.y":477,"own rb.x":357,"own rb.y":478},{"puck.x":219,"puck.y":388,"opp g.x":245,"opp g.y":917,"opp c.x":267,"opp c.y":644,"opp lf.x":68,"opp lf.y":562,"opp rf.x":421,"opp rf.y":562,"opp lb.x":136,"opp lb.y":759,"opp rb.x":382,"opp rb.y":759,"own g.x":245,"own g.y":917,"own c.x":220,"own c.y":419,"own lf.x":55,"own lf.y":364,"own rf.x":434,"own rf.y":362,"own lb.x":110,"own lb.y":532,"own rb.x":357,"own rb.y":533},{"puck.x":266,"puck.y":404,"opp g.x":245,"opp g.y":917,"opp c.x":227,"opp c.y":631,"opp lf.x":56,"opp lf.y":547,"opp rf.x":433,"opp rf.y":547,"opp lb.x":111,"opp lb.y":746,"opp rb.x":357,"opp rb.y":746,"own g.x":245,"own g.y":917,"own c.x":265,"own c.y":432,"own lf.x":65,"own lf.y":364,"own rf.x":424,"own rf.y":362,"own lb.x":130,"own lb.y":548,"own rb.x":377,"own rb.y":550},{"puck.x":235,"puck.y":464,"opp g.x":245,"opp g.y":917,"opp c.x":251,"opp c.y":571,"opp lf.x":60,"opp lf.y":487,"opp rf.x":429,"opp rf.y":487,"opp lb.x":124,"opp lb.y":686,"opp rb.x":369,"opp rb.y":686,"own g.x":245,"own g.y":917,"own c.x":236,"own c.y":492,"own lf.x":62,"own lf.y":414,"own rf.x":427,"own rf.y":412,"own lb.x":120,"own lb.y":608,"own rb.x":366,"own rb.y":610}];
function trainWithPuck(rink){
// Generate some synthetic data for training.
var input = [];
var output = [];
var cnt = 0;
for(i in ts1){
input = input.concat([ts1[i]['puck.x']/rink.width, ts1[i]['puck.y']/rink.heigth]);
output = output.concat([ts1[i]['own c.x']/rink.width, ts1[i]['own c.y']/rink.heigth]);
cnt++;
}
// Define a model for linear regression.
const activation = 'relu';
const model = tf.sequential({
layers: [
tf.layers.dense({units: 2, inputShape:[2], activation: activation}),
tf.layers.dense({units: 2, activation: activation}),
// tf.layers.dense({units: 2, activation: activation})
]
});
model.compile({loss: 'meanSquaredError', optimizer: 'sgd', metrics: ['accuracy']});
console.log(model.summary());
const xs = tf.tensor2d(input, [cnt, 2]);
const ys = tf.tensor2d(output, [cnt, 2]);
// Train the model using the data.
model.fit(xs, ys, {epochs: 500}).then(info => {
console.log(info.history)
var pred = model.predict(tf.tensor2d([124,279],[1,2]));
pred[0] *= rink.width;
pred[1] *= rink.heigth;
pred.print();
console.log(pred);
});
return model;
}
function trainWithPuckAll(){
// Generate some synthetic data for training.
var input = [];
var output = [];
var cnt = 0;
for(i in ts1){
input = input.concat([ts1[i]['puck.x'], ts1[i]['puck.y']]);
output = output.concat([ts1[i]['own g.x'], ts1[i]['own g.y'],ts1[i]['own c.x'], ts1[i]['own c.y'],ts1[i]['own lf.x'], ts1[i]['own lf.y'],ts1[i]['own rf.x'], ts1[i]['own g.y'],ts1[i]['own g.x'], ts1[i]['own g.y'],ts1[i]['own g.x'], ts1[i]['own g.y'],
ts1[i]['opp g.x'], ts1[i]['opp g.y'],ts1[i]['opp c.x'], ts1[i]['opp c.y'],ts1[i]['opp lf.x'], ts1[i]['opp lf.y'],ts1[i]['opp rf.x'], ts1[i]['opp g.y'],ts1[i]['opp g.x'], ts1[i]['opp g.y'],ts1[i]['opp g.x'], ts1[i]['opp g.y']]);
cnt++;
}
// Define a model for linear regression.
const activation = 'linear';
const model = tf.sequential({
layers: [
tf.layers.dense({units: 24, inputShape:[2], activation: activation})//,
// tf.layers.dense({units: 48, activation: activation}),
// tf.layers.dense({units: 24, activation: activation})
]
});
model.compile({loss: 'meanSquaredError', optimizer: 'sgd', metrics: ['accuracy']});
console.log(model.summary());
const xs = tf.tensor2d(input, [cnt, 2]);
const ys = tf.tensor2d(output, [cnt, 24]);
// Train the model using the data.
model.fit(xs, ys, {epochs: 100}).then(info => {
console.log(info.history)
var pred = model.predict(tf.tensor2d([175,120],[1,2]));
pred.print();
console.log(pred);
});
return model;
}