-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmission-control.ts
More file actions
56 lines (48 loc) · 1.43 KB
/
Copy pathmission-control.ts
File metadata and controls
56 lines (48 loc) · 1.43 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
import type { Vehicle } from "./src/vehicle";
import { createMap } from "./src/map";
import { moveVehicle } from "./src/move-vehicle";
export function operationGo(
plateauSize: number[],
vehicle1StartPosition: (string | number)[],
vehicle1MoveInstructions: string,
vehicle2StartPosition: (string | number)[],
vehicle2MoveInstructions: string
): string {
// here we set the map up
const [mapRows, mapColumns] = createMap(plateauSize[0], plateauSize[1]);
// set up vehicle 1
const rover1: Vehicle = {
x: vehicle1StartPosition[0] as number,
y: vehicle1StartPosition[1] as number,
direction: vehicle1StartPosition[2] as string,
};
// moveVehicle(rover1);
const moveRover1 = moveVehicle(
rover1,
vehicle1StartPosition,
vehicle1MoveInstructions,
mapRows,
mapColumns
);
const rover1EndPosition: (string | number)[] = [
...(moveRover1 as string | number[]),
];
rover1EndPosition.pop();
console.log("rover1EndPosition: " + rover1EndPosition);
// set up vehicle 2
const rover2: Vehicle = {
x: vehicle2StartPosition[0] as number,
y: vehicle2StartPosition[1] as number,
direction: vehicle2StartPosition[2] as string,
};
// moveRover1 is 1st rover end position;
const moveRover2 = moveVehicle(
rover2,
vehicle2StartPosition,
vehicle2MoveInstructions,
mapRows,
mapColumns,
rover1EndPosition as number[]
);
return `${moveRover1} ${moveRover2}`;
}