#ifndef SOLVER_H #define SOLVER_H #include "puzzle.h" struct cell { short b_black; short right_sum; short right_len; short down_sum; short down_len; short value; unsigned short whitelist; short up; short down; short right; short left; }; #define IS_PWR_TWO(x) ((x) > 0 && !((x) & ((x) - 1))) int solve_puzzle(Puzzle *puzzle); int recursive_solve(struct cell *list, int length, int start); int block_value(struct cell *cell, int direction); #endif