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){
        
    }
}