Question: please help in c language NOT c++ I need help with the paintRoom.c Room Tests: ROOM TEST 1: 12 34 ********************************** * * ******************************** *
please help in c language NOT c++ I need help with the paintRoom.c






Room Tests:
ROOM TEST 1: 12 34 ********************************** * * ******************************** * ******************************** * * * * ******************************** * ******************************** * * ******************************** * ******************************** * * A * **********************************
ROOM TEST 2: 3 34 ********************************** * A * **********************************
ROOM TEST 3:
9 14 ************** * A * * * * * * * * *** * * * * ***** * * *** * **************
ROOM TEST 4:
5 5 ***** *A * *** * * * *****
ROOM TEST 5:
4 5 ***** * A* * * *****
ROOM TEST 6:
12 14 ************** * A * * **** ***** * * * * * * * * **** *** * * * * * * * * * * *** * **** * * * * * * * * *** *** ****** * * * * * * **************
ROOM TEST 7:
28 34 ********************************** * ** * * * * * * A** * * * * *********** ****** * * * * * * * * ** * * ****************** * * ** ******* ** * * * * * * * * * * * * ** ************ *************** * ** * * * * ************ *************** * ** * * * ** ************ *************** * * * * * ******************************** * ******************************** * ** * * * * * * ** * * * * *********** ****** * * * * * * * * ** * * ****************** * * ** ******* ** * * * * * * * * * * * * ** ************ *************** * ** * * * * ************ *************** * ** * * * ** ************ *************** * * * * **********************************
ROOM TEST 8:
14 34 ********************************** * ** * * * * * * ** * * * * *********** ****** * * A * * * * * * ** * * ****************** * * ** ******* ** * * * * * * * * * * * * ** ************ *************** * ** * * * * ************ *************** * ** * * * ** ************ *************** * * * * **********************************
PROVIDED CODE:
driver.c:
#include
#include "paintRoom.h"
RoomData read2DArray( const char* name ); void print2DArray( RoomData room ); void free2DArray( RoomData room );
/* change the following constants to add/remove some cases for testing */ const int numFiles = 8; const char *defaultFilenames[] = { "room-Small01.txt", "room-Small02.txt", "room-Medium01.txt", "room-Medium02.txt", "room-Long01.txt", "room-Long02.txt", "room-Large01.txt", "room-Large02.txt" }; const bool enableFilenames[] = { true , true , true , true , true , true , true , true };
/* DO NOT MODIFY THIS FILE */
int main( int argc, char *argv[] ) { int i; RoomData room; printName( );
printf("Running default test files: ");
for( i=0; i room = read2DArray( defaultFilenames[i] ); printf("Base room: "); print2DArray( room ); paintRoom( room ); printf(" Room after algorithm: "); print2DArray( room ); free2DArray( room ); printf(" --------------- END OF OUTPUT FOR %s ----------------- ", defaultFilenames[i]); } } return 0; } //Read in and return room from given file RoomData read2DArray( const char* name ) { int i, j; FILE *f = fopen( name, "r" ); char buffer[100]; char* line; RoomData room; if( f==NULL || fgets(buffer, 100, f)==NULL || sscanf( buffer, "%d%d", &room.numrows, &room.numcols )!=2 ) { printf("ERROR - Invalid file format %s ", name); exit(-1); } line = (char*)malloc( sizeof(char)*(room.numcols+10) ); room.roomArray = (char**)malloc( sizeof(char*)*(room.numrows) ); for( i=0; i if( fgets( line, room.numcols+10, f ) == NULL ) { printf("ERROR - Failed to read %dth row ", i+1); exit(-1); } for( j=0; j free(line); /* close file and return created trafficData */ fclose( f ); return room; } //Print given 2D array void print2DArray( RoomData room ) { int i, j; for( i=0; i //Free given 2D array void free2DArray( RoomData room ) { int i; for( i=0; i Makefile: # Makefile comments PROGRAMS = driver CC = gcc CFLAGS = -Wall -g all: $(PROGRAMS) clean: rm -f *.o # C compilations paintRoom.o: paintRoom.c paintRoom.h $(CC) $(CFLAGS) -c paintRoom.c driver.o: driver.c paintRoom.h $(CC) $(CFLAGS) -c driver.c # Executable programs driver: driver.o paintRoom.o $(CC) $(CFLAGS) -o driver driver.o paintRoom.o paintRoom.h: #ifndef _paintRoom_h #define _paintRoom_h #include /* DO NOT MODIFY THIS FILE */ typedef struct RoomData { char **roomArray; /* the 2d char array representing the room shared by Jethro and Cletus */ int numrows; /* the number of rows for the char** roomArray */ int numcols; /* the number of columns for the char** roomArray */ } RoomData; void printName( ); void paintRoom( RoomData room ); #endif paintRoom.c: #include "paintRoom.h" void recPaintRoom( RoomData room, int row, int col, int distanceFromA /* feel free to remove/add any other parameters here*/ ); /* declare any other helper functions here*/ /* printName * input: none * output: none * * Prints name the student who worked on this solution */ void printName( ) { /* TODO : Fill in your name*/ printf(" This solution was completed by: "); printf(" /* TODO * paintRoom * input: the room to process * output: N/A * * This non-recursive function is called by the driver and it makes the initial call to recursive function recPaintRoom. */ void paintRoom( RoomData room ) { /* Call any other helper functions (a helper function to find the location of 'A' in room may be handy) */ /* Call your recursive function here */ //recPaintRoom( room, /* initial row value */, /* initial col value */, /* initial value for distanceFromA */ ); } /* TODO * recPaintRoom * input: the room to process, the row and column of the current location being explored, the distance traveled from 'A' * output: N/A */ void recPaintRoom( RoomData room, int row, int col, int distanceFromA /* feel free to remove/add any other parameters here*/ ) { /* Base cases: */ /* Recursive cases: */ }
Step by Step Solution
There are 3 Steps involved in it
Get step-by-step solutions from verified subject matter experts
