diff options
| author | Gustav Sörnäs <gustav@sornas.net> | 2020-12-03 17:11:43 +0100 |
|---|---|---|
| committer | Gustav Sörnäs <gustav@sornas.net> | 2020-12-08 10:21:07 +0100 |
| commit | 0c39051ba80f04b1177833a006f2d442a7170b56 (patch) | |
| tree | 9e657946a061b5b305f9cf75634db7b37e979eb3 /labb8/src/costs.h | |
| parent | 7b7f6808a7b2db2ed21103767434c1445f7815c2 (diff) | |
| download | tddd86-0c39051ba80f04b1177833a006f2d442a7170b56.tar.gz | |
add initial files l8
Diffstat (limited to 'labb8/src/costs.h')
| -rwxr-xr-x | labb8/src/costs.h | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/labb8/src/costs.h b/labb8/src/costs.h new file mode 100755 index 0000000..2c4cc91 --- /dev/null +++ b/labb8/src/costs.h @@ -0,0 +1,64 @@ +/* + * TDDD86 Trailblazer + * This file contains functions for computing the costs of navigating the + * terrain and maze worlds, as well as heuristics for predicting costs. + * See costs.cpp for implementation of each function. + * + * Please do not modify this provided file. Your turned-in files should work + * with an unmodified version of all provided code files. + * + * Author: Marty Stepp, Keith Schwarz, et al + * Slight modifications by Tommy Farnqvist + */ + +#ifndef _costs_h +#define _costs_h + +#include <cmath> +#include <limits> +#include "grid.h" +#include "types.h" + +// represents 'infinity' for use in your various algorithms as needed +const double POSITIVE_INFINITY = 1.0 / 0.0; +const double NEGATIVE_INFINITY = -1.0 / 0.0; + +/* Constants representing the value of a wall and floor cell in a maze. */ +const double kMazeWall = 0.0; +const double kMazeFloor = 1.0; + +const double kAltitudePenalty = 100; + + +/* + * A function that given two adjacent locations in a terrain, returns the cost + * associated with moving from the first location to the second. + */ +double terrainCost(TBLoc from, TBLoc to, const Grid<double>& world); + +/* + * A function that, given two locations in a terrain, estimates the cost + * of moving from the first location all the way to the second. + */ +double terrainHeuristic(TBLoc from, TBLoc to, const Grid<double>& world); + +/* + * A function that, given two adjacent locations in a maze, returns the cost + * associated with moving from the first location to the second. + */ +double mazeCost(TBLoc from, TBLoc to, const Grid<double>& world); + +/* + * A function that, given two locations in a maze, estimates the cost of + * moving from the first location all the way to the second. + */ +double mazeHeuristic(TBLoc from, TBLoc to, const Grid<double>& world); + +/* + * A heuristic function that always returns 0. This function is used so that + * the shortestPath function can be used to run Dijkstra's algorithm, which is + * the same as running A* search with a zero heuristic function. + */ +double zeroHeuristic(TBLoc from, TBLoc to, const Grid<double>& world); + +#endif |
