X-Git-Url: https://git.cworth.org/git?a=blobdiff_plain;f=src%2Frrsolve.c;h=fd85a57b1259a3983b2fec474fcb65f0d469241b;hb=073736b9a3889b8ca726bf4e16067c4af11d1504;hp=a957049c3960b988192896b2a8adfed8557cd43f;hpb=2c00783f6c19313d78dc29fc65c483f5e5d0c81b;p=rrsolve diff --git a/src/rrsolve.c b/src/rrsolve.c index a957049..fd85a57 100644 --- a/src/rrsolve.c +++ b/src/rrsolve.c @@ -74,67 +74,6 @@ trace_solution (rr_board_t *board, rrs_state_t solution_state, rrs_solution_t *solution); -char TOUGH[] = "\n" -" === === === === === === === === === === === === === === === === \n" -"|... ... ... ...|r.. ... ... ... ... ... ... ...|... ... ... ...|\n" -" === \n" -"|... ... ... ... ... ... ... ... ... ... ... ... ...|.rs Y.. ...|\n" -" \n" -"|... ... ... ... ... .bo|... ... ... .bt|... ... ... ... ... ...|\n" -" === === \n" -"|... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...|\n" -" === \n" -"|... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...|\n" -" === \n" -"|... ... .gc|... ... ... ...|.rt ... ... ... ... ... ...|.go ...|\n" -" === === === === \n" -"|... ... ... ... ... ... ... ... ... ... ... .yc|... ... ... ...|\n" -" === === === \n" -"|...|.YS ... ... ... ... ...|... ...|... ... ... ... ... ... ...|\n" -" === \n" -"|... ... ... ... ... ... ...|... ...|... ... ...|.ww ... ... ...|\n" -" === === === === \n" -"|... .yo|... ... ...|bbs ... ... ... ...|.bc ... ... ... ... ...|\n" -" === \n" -"|... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...|\n" -" === === \n" -"|... ... ... ... ... ... ... ... ... .yt|... ... ... ... ... ...|\n" -" === === \n" -"|... ... ... ... ... ... .rc|... ... ... ... ... ... ... .gs|...|\n" -" === \n" -"|... ... ... ... ... ... ... ... ... ... ... ... ... ... ... g..|\n" -" === \n" -"|... ...|.gt ... ... ... ... ... ... ... ... ... ...|.ro ... ...|\n" -" === \n" -"|... ... ... ... ... ...|... ... ... ... ...|... ... ... ... ...|\n" -" === === === === === === === === === === === === === === === === "; -/* -Move #1 generated 11 new states. -Move #2 generated 59 new states. -Move #3 generated 216 new states. -Move #4 generated 640 new states. -Move #5 generated 1701 new states. -Move #6 generated 4239 new states. -Move #7 generated 10041 new states. -Move #8 generated 22678 new states. -Move #9 generated 49103 new states. -Move #10 generated 102154 new states. -Move #11 generated 204086 new states. -Move #12 generated 391534 new states. -Move #13 generated 722808 new states. -Move #14 generated 1285932 new states. -Move #15 generated 2204971 new states. -Found solution of 16 moves in 3694.8 seconds. -Traced solution in 0.052438 seconds. -Solution (16 moves): - Move #0: yellow east, south, west -Move #3: green south, west, north -Move #6: blue east, north, west, south -Move #10: yellow south, east, south -Move #13: green west -Move #14: yellow north -*/ - int main (int argc, char *argv[]) { @@ -144,24 +83,41 @@ main (int argc, char *argv[]) args_parse (&args, argc, argv); - client = rr_client_create (args.host, args.port, args.user); - if (client == NULL) { - fprintf (stderr, "Failed connecting to %s:%s as %s\n", - args.host, args.port, args.user); - return 1; - } + if (args.files) { + int i; + rr_board_t *board; + rrs_solution_t solution; - status = rr_client_join (client, GAME); - if (status == RR_STATUS_NO_GAME) - status = rr_client_new (client, GAME); - if (status) { - fprintf (stderr, "Error joining or creating game: %s\n", rr_status_str (status)); - return 1; - } + for (i = 0; args.files[i]; i++) { + board = rr_board_create_from_file (args.files[i]); + if (board == NULL) + continue; + rrs_solution_init (&solution); + solve_board (board, &solution); + rrs_solution_print (&solution); + rrs_solution_fini (&solution); + rr_board_destroy (board); + } + } else { + client = rr_client_create (args.host, args.port, args.user); + if (client == NULL) { + fprintf (stderr, "Failed connecting to %s:%s as %s\n", + args.host, args.port, args.user); + return 1; + } - handle_events (client); + status = rr_client_join (client, GAME); + if (status == RR_STATUS_NO_GAME) + status = rr_client_new (client, GAME); + if (status) { + fprintf (stderr, "Error joining or creating game: %s\n", rr_status_str (status)); + return 1; + } + + handle_events (client); - rr_client_destroy (client); + rr_client_destroy (client); + } return 0; }