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