added more code
This commit is contained in:
@ -0,0 +1,127 @@
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <stdint.h>
|
||||
#include <string.h>
|
||||
#include <ncurses.h>
|
||||
|
||||
|
||||
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
FILE* mazeFile; /* Maze Input File */
|
||||
unsigned int row = 0; /* Holds number of rows for input from file */
|
||||
unsigned int col = 0; /* Holds number of cols for input from file */
|
||||
char shold[2000]; /* Holds lines for input from file */
|
||||
unsigned int l = 0;
|
||||
unsigned int k = 0;
|
||||
char **maze; /* array for maze */
|
||||
unsigned int c1 = 0;
|
||||
unsigned int c2 = 0;
|
||||
unsigned int i = 0;
|
||||
unsigned int j = 0;
|
||||
|
||||
/* check to see if argument */
|
||||
if (argc != 2)
|
||||
{
|
||||
printf("An error has ocurred no input file was given.\n");
|
||||
return 1;
|
||||
}
|
||||
mazeFile = fopen(argv[1], "r");
|
||||
if (mazeFile == NULL)
|
||||
{
|
||||
printf("Error in opening the file.\n");
|
||||
return 1;
|
||||
}
|
||||
fgets(shold, 2, mazeFile);
|
||||
while ( feof(mazeFile) == 0 )
|
||||
{
|
||||
|
||||
switch(shold[0])
|
||||
{
|
||||
case 'M':
|
||||
/* read array values, dynamically allocate array */
|
||||
fscanf(mazeFile, "%3u %3u", &row, &col);
|
||||
maze = (char**)malloc(row * 8);
|
||||
for(i = (unsigned) 0; i < row; i++)
|
||||
{
|
||||
if (maze==NULL)
|
||||
{
|
||||
break;
|
||||
}
|
||||
maze[i] = malloc(col * 8);
|
||||
}
|
||||
for (i = (unsigned) 0; i < row; i++)
|
||||
{
|
||||
for (j = (unsigned) 0; j < col; j++)
|
||||
{
|
||||
fscanf(mazeFile, "%c", &maze[i][j]);
|
||||
if (maze[i][j] == '\n')
|
||||
{
|
||||
fscanf(mazeFile, "%c", &maze[i][j]);
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 'P':
|
||||
fscanf(mazeFile, "%3u %3u", &k, &l);
|
||||
/* check maze bounds */
|
||||
if(k>= row || l>= col){
|
||||
break;
|
||||
}
|
||||
maze[k][l] = 'P';
|
||||
break;
|
||||
|
||||
case 'Z':
|
||||
fscanf(mazeFile, "%3u %3u", &k, &l);
|
||||
/* check maze bounds */
|
||||
if(k>= row || l>= col){
|
||||
break;
|
||||
}
|
||||
maze[k][l] = 'Z';
|
||||
break;
|
||||
|
||||
case 'T':
|
||||
fscanf(mazeFile, "%3u %3u", &k, &l);
|
||||
/* check maze bounds */
|
||||
if(k>= row || l>= col){
|
||||
break;
|
||||
}
|
||||
maze[k][l] = 'T';
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
};
|
||||
fgets(shold, 2, mazeFile);
|
||||
if (feof(mazeFile) != 0)
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
fclose(mazeFile);
|
||||
/* print out maze */
|
||||
for (c1 =(unsigned)0; c1 < row; c1++)
|
||||
{
|
||||
printf ("\n");
|
||||
for (c2=(unsigned)0; c2 < col; c2++)
|
||||
{
|
||||
if (maze==NULL)
|
||||
{
|
||||
break;
|
||||
}
|
||||
printf("%c", maze[c1][c2]);
|
||||
}
|
||||
}
|
||||
|
||||
/* free the memory */
|
||||
for(i = (unsigned)0; i < row; i++)
|
||||
{
|
||||
free(maze[i]);
|
||||
maze[i] = NULL;
|
||||
}
|
||||
if(maze != NULL){
|
||||
free(maze);
|
||||
}
|
||||
printf("\n");
|
||||
return 0;
|
||||
}
|
Reference in New Issue
Block a user