diff options
Diffstat (limited to 'solve.c')
-rw-r--r-- | solve.c | 104 |
1 files changed, 17 insertions, 87 deletions
@@ -5,6 +5,7 @@ #include "update.h" #include "cell.h" #include "display.h" +#include "load.h" /* * For all unsolved cells on the board, solve them if they have been marked as @@ -344,98 +345,27 @@ int board_is_solved(struct cell (*b)[9][9]) int main(int argc, char **argv) { struct cell board[9][9]; + FILE *f = NULL; memset(board, 0, sizeof(board)); - board[1][0].val = 6; - board[2][0].val = 1; - board[3][0].val = 5; - board[8][0].val = 9; - - board[1][1].val = 7; - board[2][1].val = 5; - board[3][1].val = 4; - board[4][1].val = 9; - board[5][1].val = 3; - board[6][1].val = 6; - - board[0][2].val = 9; - board[3][2].val = 6; - board[7][2].val = 7; - - board[0][3].val = 4; - board[3][3].val = 2; - board[5][3].val = 6; - - board[0][4].val = 3; - board[2][4].val = 9; - board[6][4].val = 2; - board[8][4].val = 7; - - board[3][5].val = 9; - board[5][5].val = 5; - board[8][5].val = 3; - - board[1][6].val = 8; - board[5][6].val = 9; - board[8][6].val = 5; - - - board[2][7].val = 4; - board[3][7].val = 7; - board[4][7].val = 5; - board[5][7].val = 2; - board[6][7].val = 8; - board[7][7].val = 9; - - - board[0][8].val = 5; - board[5][8].val = 1; - board[6][8].val = 7; - board[7][8].val = 3; - -// board[7][0].val = 3; -// board[4][1].val = 3; -// board[0][7].val = 3; -// board[1][4].val = 3; -// -// /* dummy board taken from the guardian lol */ -// /* FIXME: have a way to input boards, silly */ -// board[0][0].val = 7; -// board[0][4].val = 5; -// -// board[1][2].val = 5; -// board[1][4].val = 9; -// -// board[2][1].val = 6; -// board[2][2].val = 4; -// board[2][5].val = 2; -// -// board[3][0].val = 1; -// board[3][5].val = 9; -// board[3][6].val = 7; -// -// board[4][0].val = 9; -// board[4][2].val = 6; -// board[4][3].val = 4; -// board[4][7].val = 8; -// board[4][8].val = 5; -// -// board[5][4].val = 2; -// -// board[6][4].val = 8; -// board[6][6].val = 5; -// board[6][7].val = 6; -// -// board[7][1].val = 8; -// board[7][6].val = 3; -// -// board[8][0].val = 4; -// board[8][4].val = 1; -// board[8][5].val = 7; -// board[8][8].val = 8; + if (argc != 2) { + printf("Syntax: %s puzzle_file\n", argv[0]); + return 1; + } + + f = fopen(argv[1], "r"); + if (!f) { + perror("fopen"); + return 1; + } + if (load(f, &board) < 0) { + fclose(f); + return 1; + } + fclose(f); display(board); |