aboutsummaryrefslogtreecommitdiff
path: root/puzzles.h
diff options
context:
space:
mode:
authorSimon Tatham <anakin@pobox.com>2005-09-01 11:57:56 +0000
committerSimon Tatham <anakin@pobox.com>2005-09-01 11:57:56 +0000
commit94b36c11e00bb740813506b0d3911f90f1829941 (patch)
tree07767f714efa6b617fde66876073a16eebd89ea3 /puzzles.h
parent6992530a8514f88238fd6f8c508f54b058ee3f19 (diff)
downloadpuzzles-94b36c11e00bb740813506b0d3911f90f1829941.zip
puzzles-94b36c11e00bb740813506b0d3911f90f1829941.tar.gz
puzzles-94b36c11e00bb740813506b0d3911f90f1829941.tar.bz2
puzzles-94b36c11e00bb740813506b0d3911f90f1829941.tar.xz
James H has implemented a new `Tricky' difficulty level in Light Up:
a non-recursive level above Easy, which therefore moves the recursive Hard mode further up still. Play-testing suggests that in fact Tricky is often _harder_ than the old Hard mode, since the latter had limited depth of recursion and would therefore spot complex deductions only if it happened to start a recursion on the right square; Tricky may be limited in the sophistication of its complex deductions, but it never misses one, so its puzzles tend to be hard all over. Also in this checkin, a new source file `nullfe.c', containing all the annoying stub functions required to make command-line solvers link successfully. James wrote this for (the new) lightupsolver, and I've used it to simplify the other stand-alone solvers. [originally from svn r6254]
Diffstat (limited to 'puzzles.h')
-rw-r--r--puzzles.h14
1 files changed, 14 insertions, 0 deletions
diff --git a/puzzles.h b/puzzles.h
index ebe6839..a962bc3 100644
--- a/puzzles.h
+++ b/puzzles.h
@@ -324,6 +324,20 @@ void ps_free(psdata *ps);
drawing *ps_drawing_api(psdata *ps);
/*
+ * combi.c: provides a structure and functions for iterating over
+ * combinations (i.e. choosing r things out of n).
+ */
+typedef struct _combi_ctx {
+ int r, n, nleft, total;
+ int *a;
+} combi_ctx;
+
+combi_ctx *new_combi(int r, int n);
+void reset_combi(combi_ctx *combi);
+combi_ctx *next_combi(combi_ctx *combi); /* returns NULL for end */
+void free_combi(combi_ctx *combi);
+
+/*
* Data structure containing the function calls and data specific
* to a particular game. This is enclosed in a data structure so
* that a particular platform can choose, if it wishes, to compile