-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmain.js
More file actions
61 lines (49 loc) · 1.15 KB
/
main.js
File metadata and controls
61 lines (49 loc) · 1.15 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
var way = [
['north', north],
['east', east],
['south', south],
['west', west]
];
var currentDirection = 0;
var currentState = "";
var stepDelay = 150;
function turnLeft() {
currentDirection = (currentDirection + 3) % 4;
}
function turnRight() {
currentDirection = (currentDirection + 1) % 4;
}
function seekFreeLeft() {
turnLeft();
while (!isFree(way[currentDirection][0])) {
turnRight();
}
}
function step() {
map();
return way[currentDirection][1]();
}
function takeTheWall() {
while(isFree(way[currentDirection][0])) {
turnLeft();
}
while(!isFree(way[currentDirection][0])) {
turnRight();
}
}
takeTheWall();
var mainFunctionInterval = setInterval(mainFunction, stepDelay);
function mainFunction() {
console.clear();
seekFreeLeft();
if ((currentState = step()) == "next") {
clearInterval(mainFunctionInterval);
alert("TA-DAAAAAA!!!");
takeTheWall();
mainFunctionInterval = setInterval(mainFunction, stepDelay);
}
else if (currentState != true) {
clearInterval(mainFunctionInterval);
alert("I'M FREEEEE!!!");
}
}