Mercurial > projects > aid
diff trunk/aid/astar.d @ 0:4b2e8e8a633e
Repository setup.
author | revcompgeek |
---|---|
date | Mon, 03 Mar 2008 19:28:10 -0700 |
parents | |
children | 5dd9f598bcd8 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/trunk/aid/astar.d Mon Mar 03 19:28:10 2008 -0700 @@ -0,0 +1,42 @@ +/*+++++++++++++++++++++++++++++++++++++++++++ + + A* algorithm + + + By Matt Peterson + + +++++++++++++++++++++++++++++++++++++++++++*/ + +module aid.astar; + +import mintl.arrayheap; + +class Node(DATA) { + int xloc; + int yloc; + int fitness; + private int fitg; + Node* parent = null; + DATA data; + + this(DATA d, int g){ + data = d; + fitness = g; + fitg = g; + } + this(DATA d, int g, Node* p){ + data = d; + parent = p; + if(parent) fitness = parent.fitness + g; + fitg = g; + } + int opCmp(Node other){ + return this.fitness - other.fitness; + } +} + +class AStar(DATA) { + alias Node!(DATA) Node; + alias DATA[] delegate(DATA) getChildren; + ArrayHeap!(Node) openList; + ArrayHeap!(Node) closedList; + DATA[] run(DATA start){ + + } +} \ No newline at end of file