|
|
@@ -0,0 +1,49 @@
|
|
|
+#include <stdio.h>
|
|
|
+#include <stdlib.h>
|
|
|
+#include <string.h>
|
|
|
+#include <stdbool.h>
|
|
|
+#include <limits.h>
|
|
|
+#include <assert.h>
|
|
|
+
|
|
|
+#define MAXCOLS 256
|
|
|
+#define MAXROWS 256
|
|
|
+
|
|
|
+
|
|
|
+/* Data type: Labyrinth - ASCII map, costs, direction */
|
|
|
+
|
|
|
+typedef struct labyrinth
|
|
|
+{
|
|
|
+ char lab[MAXCOLS+2][MAXROWS];
|
|
|
+ long costs[MAXCOLS][MAXROWS];
|
|
|
+ long bestx[MAXCOLS][MAXROWS];
|
|
|
+ long besty[MAXCOLS][MAXROWS];
|
|
|
+ int maxrow;
|
|
|
+ int startx;
|
|
|
+ int starty;
|
|
|
+ int treasurex;
|
|
|
+ int treasurey;
|
|
|
+}LabCell, *Lab_p;
|
|
|
+
|
|
|
+int main(int argc, char* argv[])
|
|
|
+{
|
|
|
+ FILE *in = stdin;
|
|
|
+ Lab_p lab = NULL, handle;
|
|
|
+ char* inp;
|
|
|
+
|
|
|
+ if(argc > 2)
|
|
|
+ {
|
|
|
+ fprintf(stderr, "Usage: %s [<file>]\n", argv[0]);
|
|
|
+ exit(EXIT_FAILURE);
|
|
|
+ }
|
|
|
+ if(argc == 2)
|
|
|
+ {
|
|
|
+ in = fopen(argv[1], "r");
|
|
|
+ if(!in)
|
|
|
+ {
|
|
|
+ perror(argv[0]);
|
|
|
+ exit(EXIT_FAILURE);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ lab LabRead(in);
|
|
|
+ return 0;
|
|
|
+}
|