forked from ChalmersGU-AI-course/shrdlite-course-project
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathshrdlite-offline.ts
54 lines (46 loc) · 1.37 KB
/
shrdlite-offline.ts
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
///<reference path="Shrdlite.ts"/>
///<reference path="TextWorld.ts"/>
///<reference path="ExampleWorlds.ts"/>
///<reference path="AStarExample.ts"/>
// Extract command line arguments:
var nodename = process.argv[0];
var jsfile = process.argv[1].replace(/^.*\//, "");
var worldname = process.argv[2];
var utterance = process.argv[3];
var usage = "Usage: " + nodename + " " + jsfile +
" (" + Object.keys(ExampleWorlds).join(" | ") + ")" +
" (utterance | example no.)";
// Astar example shower
if(process.argv[2] == "ASTAR")
{
console.log("Printing Bucharest example: ");
if(!(+process.argv[3]<0 || + process.argv[3]> 19 || process.argv[3]== null ))
{
AStarExample.example2(+process.argv[3]);
}
else
{
AStarExample.example2(0);
}
process.exit(0);
}
if (process.argv.length != 4 || !ExampleWorlds[worldname]) {
console.error(usage);
process.exit(1);
}
var world = new TextWorld(ExampleWorlds[worldname]);
var example = parseInt(utterance);
if (!isNaN(example)) {
utterance = world.currentState.examples[example];
if (!utterance) {
console.error("Error: Cannot find example no. " + example);
process.exit(1);
}
}
world.printWorld(() => {
var plan = Shrdlite.parseUtteranceIntoPlan(world, utterance);
console.log();
world.performPlan(plan, () => {
world.printWorld();
});
});