#include <time.h>
#include <sylvan.h>
+
#include "mc.h"
#include "sokoban.h"
-//#include <sokoban.h>
-//#include <object.h>
-//#include <coord.h>
-
//Global variables
bool DEBUG = false;
strategy strat = HYBRID;
-void usage(char *prg){
- fprintf(stderr,
+void usage(char *prg)
+{
+ fprintf(stderr,
"Usage:\n"
"\t%s [opts] [FILE [FILE [...]]]\n"
"\n"
"\t when no file is specified stdin will be used\n", prg);
}
-void solve(FILE *inputstream){
+void solve(FILE *inputstream)
+{
clock_t time_start_read, time_end_read;
clock_t time_start_encode, time_end_encode;
time_start_read = clock();
- //struct sokoban_screen *screen = parse_screen(inputstream);
- parse_screen(inputstream);
+ sokoban_screen *screen = parse_screen(inputstream);
+ if (screen == NULL) printf("Something went wrong...\n");
+ sokoban_print(screen);
+ sokoban_free(screen);
+ //parse_screen(inputstream);
time_end_read = clock();
time_start_encode = clock();
switch(strat){
case COORD:
+ if(DEBUG) fprintf(stderr, "Encoding coordinate based\n");
+ break;
case OBJECT:
+ if(DEBUG) fprintf(stderr, "Encoding object based\n");
+ break;
case HYBRID:
+ if(DEBUG) fprintf(stderr, "Encoding hybrid based\n");
+ break;
default:
fprintf(stderr, "Huh?");
exit(2);
}
time_end_encode = clock();
-
// Future: SMC
fprintf(stderr, "Reading: %fs\n",
((double) (time_end_read-time_start_read))/CLOCKS_PER_SEC);
((double) (time_end_encode-time_start_encode))/CLOCKS_PER_SEC);
}
-int main(int argc, char **argv){
+int main(int argc, char **argv)
+{
int optchar;
while((optchar = getopt(argc, argv, "cdhoy")) != -1){
for(int filepathindex = optind; filepathindex < argc; filepathindex++){
char *currentfilepath = argv[filepathindex];
fprintf(stderr, "Processing: %s\n", currentfilepath);
- if(DEBUG) fprintf(stderr, "Strategy: %d\n", strat);
FILE *currentfile = fopen(currentfilepath, "r");
if(DEBUG) fprintf(stderr, "Opening file\n");
solve(currentfile);