mirror of
git://git.tartarus.org/simon/puzzles.git
synced 2025-04-21 08:01:30 -07:00
Adopt C99 bool in the shared Latin-square API.
latin_check now returns bool, and latin_solver_diff_set takes a bool 'extreme' flag. Should be non-disruptive.
This commit is contained in:
12
latin.c
12
latin.c
@ -650,7 +650,7 @@ int latin_solver_diff_simple(struct latin_solver *solver)
|
||||
|
||||
int latin_solver_diff_set(struct latin_solver *solver,
|
||||
struct latin_solver_scratch *scratch,
|
||||
int extreme)
|
||||
bool extreme)
|
||||
{
|
||||
int x, y, n, ret, o = solver->o;
|
||||
#ifdef STANDALONE_SOLVER
|
||||
@ -1244,12 +1244,12 @@ static int latin_check_cmp(void *v1, void *v2)
|
||||
|
||||
#define ELT(sq,x,y) (sq[((y)*order)+(x)])
|
||||
|
||||
/* returns non-zero if sq is not a latin square. */
|
||||
int latin_check(digit *sq, int order)
|
||||
/* returns true if sq is not a latin square. */
|
||||
bool latin_check(digit *sq, int order)
|
||||
{
|
||||
tree234 *dict = newtree234(latin_check_cmp);
|
||||
int c, r;
|
||||
int ret = 0;
|
||||
bool ret = false;
|
||||
lcparams *lcp, lc, *aret;
|
||||
|
||||
/* Use a tree234 as a simple hash table, go through the square
|
||||
@ -1272,10 +1272,10 @@ int latin_check(digit *sq, int order)
|
||||
|
||||
/* There should be precisely 'order' letters in the alphabet,
|
||||
* each occurring 'order' times (making the OxO tree) */
|
||||
if (count234(dict) != order) ret = 1;
|
||||
if (count234(dict) != order) ret = true;
|
||||
else {
|
||||
for (c = 0; (lcp = index234(dict, c)) != NULL; c++) {
|
||||
if (lcp->count != order) ret = 1;
|
||||
if (lcp->count != order) ret = true;
|
||||
}
|
||||
}
|
||||
for (c = 0; (lcp = index234(dict, c)) != NULL; c++)
|
||||
|
4
latin.h
4
latin.h
@ -82,7 +82,7 @@ int latin_solver_diff_simple(struct latin_solver *solver);
|
||||
* single-number elimination. */
|
||||
int latin_solver_diff_set(struct latin_solver *solver,
|
||||
struct latin_solver_scratch *scratch,
|
||||
int extreme);
|
||||
bool extreme);
|
||||
|
||||
typedef int (*usersolver_t)(struct latin_solver *solver, void *ctx);
|
||||
typedef void *(*ctxnew_t)(void *ctx);
|
||||
@ -115,7 +115,7 @@ digit *latin_generate(int o, random_state *rs);
|
||||
/* The order of the latin rectangle is max(w,h). */
|
||||
digit *latin_generate_rect(int w, int h, random_state *rs);
|
||||
|
||||
int latin_check(digit *sq, int order); /* !0 => not a latin square */
|
||||
bool latin_check(digit *sq, int order); /* true => not a latin square */
|
||||
|
||||
void latin_debug(digit *sq, int order);
|
||||
|
||||
|
Reference in New Issue
Block a user