Mercurial > projects > aid
view 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 source
/*+++++++++++++++++++++++++++++++++++++++++++ + 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){ } }