Mercurial > projects > aid
view trunk/aid/astar.d @ 6:ff92c77006c7
Added support for reading training examples from files.
author | revcompgeek |
---|---|
date | Tue, 06 May 2008 21:43:55 -0600 |
parents | 5dd9f598bcd8 |
children |
line wrap: on
line source
/*+++++++++++++++++++++++++++++++++++++++++++ + A* algorithm + + By Matt Peterson + +++++++++++++++++++++++++++++++++++++++++++*/ module aid.astar; import mintl.arrayheap; import mintl.arraylist; import xenon.font; 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){ } }