From 58e0d0bc2da319fb77f1337211ef6ef651f851f0 Mon Sep 17 00:00:00 2001 From: Simon Tatham Date: Mon, 11 Jan 2010 21:21:07 +0000 Subject: New puzzle from James Harvey: 'Singles', an implementation of Hitori. One infrastructure change in the process: latin.c has acquired a utility function to generate a latin rectangle rather than a full square. [originally from svn r8828] --- latin.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'latin.c') diff --git a/latin.c b/latin.c index 63f96a1..03d78af 100644 --- a/latin.c +++ b/latin.c @@ -1236,6 +1236,24 @@ digit *latin_generate(int o, random_state *rs) return sq; } +digit *latin_generate_rect(int w, int h, random_state *rs) +{ + int o = max(w, h), x, y; + digit *latin, *latin_rect; + + latin = latin_generate(o, rs); + latin_rect = snewn(w*h, digit); + + for (x = 0; x < w; x++) { + for (y = 0; y < h; y++) { + latin_rect[y*w + x] = latin[y*o + x]; + } + } + + sfree(latin); + return latin_rect; +} + /* -------------------------------------------------------- * Checking. */ -- cgit v1.1