Question: implement findShortestPath given Wall.h , Queue.h and Climber.h / / / / / / / / / / / / / / / / /
implement findShortestPath given Wall.h Queue.h and Climber.h
#ifndef WALLH
#define WALLH
typedef struct wall Wall;
Rock colours
#define NUMCOLOURS
enums are used to create groups of related constants. It is like
creating multiple #defines, except you can also provide a type name.
typedef enum
NONE
GREEN
TEAL
PINK
RED
Colour;
Terminal output colours
#define GRN xBm
#define CYN xBm
#define MAG xBm
#define RD xBm
#define RESET xBm
struct rock
int row;
int col;
Colour colour;
;
Creates a new blank wall with the given dimensions
Wall WallNewint height, int width;
Frees all memory allocated to the wall
void WallFreeWall w;
Returns the height of the wall
int WallHeightWall w;
Returns the width of the wall
int WallWidthWall w;
Adds a rock to the wall
If there is already a rock at the given coordinates, replaces it
void WallAddRockWall w struct rock rock;
Returns the number of rocks on the wall
int WallNumRocksWall w;
Returns the colour of the rock at the given coordinates, or NONE if
there is no rock at those coordinates.
Colour WallGetRockColourWall w int row, int col;
Stores all rocks on the wall in the given rocks array and returns
the number of rocks stored. Assumes that the array is at least as
large as the number of rocks on the wall.
int WallGetAllRocksWall w struct rock rocks;
Stores all rocks that are within a distance of dist from the given
coordinates in the given rocks array and returns the number of rocks
stored. Assumes that the array is at least as large as the number of
rocks on the wall.
int WallGetRocksInRangeWall w int row, int col, int dist,
struct rock rocks;
Stores all rocks with the colour colour that are within a distance
of dist from the given coordinates in the given rocks array and
returns the number of rocks stored. Assumes that the array is at
least as large as the number of rocks on the wall.
int WallGetColouredRocksInRangeWall w int row, int col, int dist,
Colour colour, struct rock rocks;
Prints the wall out in a nice format
void WallPrintWall w;
#endif
#ifndef QUEUEH
#define QUEUEH
#include
#include
#include "Wall.h
typedef struct rock Item;
typedef struct queue Queue;
Creates a new empty queue
Complexity: O
Queue QueueNewvoid;
Frees all resources associated with the given queue
Complexity: On
void QueueFreeQueue q;
Adds an item to the end of the queue
Complexity: O
void QueueEnqueueQueue q Item it;
Removes an item from the front of the queue and returns it
Assumes that the queue is not empty
Complexity: O
Item QueueDequeueQueue q;
Returns true if the queue is empty, and false otherwise
Complexity: O
bool QueueIsEmptyQueue q;
#endif
#ifndef CLIMBERH
#define CLIMBERH
#include "Wall.h
struct path
int numRocks;
struct rock rocks;
;
struct path findShortestPathWall w int reach, Colour colour;
struct path findMinEnergyPathWall w int reach, int energyCostsNUMCOLOURS;
struct path findMinTurnsPathWall w int reach, int energyCostsNUMCOLOURS
int maxEnergy;
#endif
Step by Step Solution
There are 3 Steps involved in it
1 Expert Approved Answer
Step: 1 Unlock
Question Has Been Solved by an Expert!
Get step-by-step solutions from verified subject matter experts
Step: 2 Unlock
Step: 3 Unlock
