Mercurial > projects > aid
view trunk/aid/astar.d @ 1:5dd9f598bcd8
Update
author | revcompgeek |
---|---|
date | Sat, 29 Mar 2008 12:30:20 -0600 |
parents | 4b2e8e8a633e |
children | ff92c77006c7 |
line wrap: on
line source
/*+++++++++++++++++++++++++++++++++++++++++++ + A* algorithm + + By Matt Peterson + +++++++++++++++++++++++++++++++++++++++++++*/ module aid.astar; import mintl.arrayheap; import mintl.arraylist; class Node(DATA) { int xloc; int yloc; int fitness; private int g; private int h; 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; ArrayList!(Node) closedList; DATA[] run(DATA start){ } }