• DEPTH-FIRST SEARCH ALGORITHM
    Considering an arrangement of a Computer Games platform, the design below can be taken as the detail of a level in the game, which includes a number of narrow corridors separated by walls (green tiles) and is enclosed by a continuous outer wall (dark-grey tiles):

    alternative

    From the “Actual Game Arrangement” we next create the so called “Network Diagram”, which is nothing more than a collection of “Nodes” and “Edges” representing in a diagrammatic form the articulation of the platform area we are interested in being able to search through the Algorithm:

    alternative

    At the next step, from the “Network Diagram” the “Tree Diagram” is constructed, which defines the arrangement of Nodes that will be directly transferred into the code:

    alternative

    We have now reached the point where the only thing remaining is to implement the arrangement of Nodes and Edges into code. To achieve this we need to define a 2D Array to accommodate the interrelations between the Nodes as dictated by the distribution of the Edges in the Tree. The total number or Rows and the total number to Columns in the 2D Array reflect the total number of Nodes in the Tree. The interrelations between the Nodes are marked as grey-filled and blue-filled squares, with number one (1) to signify the presence of an Edge in the Tree and number zero (0) to signify the absence of an Edge in the Tree:

    alternative

    As an example, suppose that we want to move along the Tree from the Root Node (Node 1) to Node 11. In a step-by-step diagrammatic form the operation of the Algorithm is expected to be as shown below:

    alternative

    The actual output of the Algorithm, for the same parameters, is as shown below:

    alternative

    Download "DFSAllVisitedNodes"

    From an observation of the actual output becomes apparent that the Algorithm needs some adjustments to be made in order to be used effectively for Path-finding purposes in a Computer Game. After these adjustments to the Algorithm its actual output is now as shown below. The output sequence of Nodes can now be directly used to guide sprites in a Computer Game from the Source Node (Node 1) to the Target Node (Node 11):

    alternative

    Download "DFSPathFinding"