-
Notifications
You must be signed in to change notification settings - Fork 0
/
base.js
115 lines (87 loc) · 3.96 KB
/
base.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
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
let startSpecified = false;
let endSpecified = false;
let startSquare = null;
let endSquare = null
function showRoute(square) {
const messageLiner = document.getElementById("messageLine");
const currentSquare = document.getElementById(square);
if (currentSquare.classList.contains("startSquare")) {
currentSquare.classList.remove("startSquare");
startSpecified = false;
if (endSpecified == true){
let changableEnd = document.getElementById(endSquare)
changableEnd.classList.remove("endSquare");
endSpecified = false;
cleanStationSquares();
}
messageLiner.innerHTML = "Please choose two squares...";
} else {
if (startSpecified != true){
currentSquare.classList.add("startSquare");
startSpecified = true;
startSquare = currentSquare.id;
messageLiner.innerHTML = "Choose the target square or remove the start square with another click on it.";
} else {
if (currentSquare.classList.contains("endSquare")) {
currentSquare.classList.remove("endSquare");
endSpecified = false;
cleanStationSquares();
messageLiner.innerHTML = "Choose the target square or remove the start square with another click on it.";
} else {
if (endSpecified != true){
currentSquare.classList.add("endSquare");
endSpecified = true;
endSquare = currentSquare.id;
} else {
let changableEnd = document.getElementById(endSquare)
changableEnd.classList.remove("endSquare");
currentSquare.classList.add("endSquare");
endSquare = currentSquare.id;
}
}
}
}
if (startSpecified == true && endSpecified == true){
//messageLiner.innerHTML = startSquare + "---" + endSquare;
cleanStationSquares();
specifyEnd(startSquare, endSquare);
}
}
function specifyEnd(startPoint, endPoint){
const messageLiner = document.getElementById("messageLine");
let path = '?start=' + startPoint + '&end=' + endPoint;
const Http = new XMLHttpRequest();
const url='https://v86wed9i20.execute-api.eu-west-1.amazonaws.com/public/knight-path' + path;
Http.open("GET", url);
Http.send();
//alert(Http.responseText);
Http.onreadystatechange = (e) => {
const possibleArray = Http.responseText;
var cleanedArray = possibleArray.replace(/([^a-z0-9,]+)/gi, "").split(",");
messageLiner.innerHTML = "This is the path: " + cleanedArray + ". You can remove the start or/and end squares.";
cleanedArray.splice(0, 1);
cleanedArray.splice(-1, 1);
//messageLiner.innerHTML = "This is the path: " + cleanedArray;
let counter = 1;
for (const item of cleanedArray) {
const squareStation = document.getElementById(item);
squareStation.classList.add("stationSquare" + counter);
//console.log(counter);
counter += 1;
}
}
}
cleanStationSquares = () => {
let elems = document.getElementsByClassName('stationSquare1');
while (elems[0]) {elems[0].classList.remove('stationSquare1');}
elems = document.getElementsByClassName('stationSquare2');
while (elems[0]) {elems[0].classList.remove('stationSquare2');}
elems = document.getElementsByClassName('stationSquare3');
while (elems[0]) {elems[0].classList.remove('stationSquare3');}
elems = document.getElementsByClassName('stationSquare4');
while (elems[0]) {elems[0].classList.remove('stationSquare4');}
elems = document.getElementsByClassName('stationSquare5');
while (elems[0]) {elems[0].classList.remove('stationSquare5');}
elems = document.getElementsByClassName('stationSquare6');
while (elems[0]) {elems[0].classList.remove('stationSquare6');}
}