Commit Graph

  • 58e0d0bc2d 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. Simon Tatham 2010-01-11 21:21:07 +00:00
  • 771f5446a8 Retire the YTRANS and YUNTRANS macros in latin.[ch]. They were introduced to mimic similar macros in solo.c, in case Solo ever moved over to being based on the latin.c solver framework; but even Solo has long since lost those macros, so latin.c has no need to keep them. Simon Tatham 2010-01-11 20:32:55 +00:00
  • 056465cb03 The 3-D graphics in Towers need a corresponding change on the input side: instead of locating a mouse click in whichever base grid square contained the click location, we should check to see if a tower protrudes on to that location from a neighbouring square. That way, a click should reliably activate the tower that was actually drawn under the mouse pointer. Simon Tatham 2010-01-11 18:41:29 +00:00
  • 67d55dc5f4 Oops! Remove evidence of blatant clone-and-hack from Keen. :-) Simon Tatham 2010-01-11 18:41:28 +00:00
  • 6776b0afba Oops. Uncomment the difficulty exceptions! (Also add another constraint in validate_params.) Simon Tatham 2010-01-09 17:21:36 +00:00
  • 572a746937 New year, new puzzle. Jacob Nevins 2010-01-08 12:25:44 +00:00
  • 28cb7e1e6c Fix formatting. Jacob Nevins 2010-01-07 20:50:49 +00:00
  • 88b66e1257 Crop the Towers icon more sensibly (i.e. at all). Simon Tatham 2010-01-07 19:09:58 +00:00
  • 7cd075870e Upgrade the graphics in Towers to include a thematically appropriate 3D effect. (I only committed it without so that I could preserve a record of how the code looked before I added it.) The 3D effect can be disabled by setting TOWERS_2D in the environment, should anybody seriously dislike it. Simon Tatham 2010-01-07 18:42:01 +00:00
  • ceb12cb080 New puzzle, again using the revised latin.c: 'Towers', a clone of a latin-square puzzle which I've seen described by several names but the most common is 'Skyscrapers'. Simon Tatham 2010-01-07 18:42:00 +00:00
  • 7c3413a2f2 Memory leak fix from James H. Simon Tatham 2010-01-07 18:15:09 +00:00
  • 2500531423 Proof that check_errors() is sufficient. Simon Tatham 2010-01-05 23:40:42 +00:00
  • dd4c8ceb1f Refer to group elements by letters instead of numbers, in keeping with usual abstract group notation. In puzzles with a clear identity, it's called e. Simon Tatham 2010-01-05 23:40:41 +00:00
  • 13d7ff6ae5 Add a facility in the latin.c solver diagnostics to allow a puzzle to call the digit values by custom names. Simon Tatham 2010-01-05 23:40:40 +00:00
  • a7b220ff9a Add an even more evil (!) game mode, in which it's not made immediately obvious which element of the group is the identity - at least two elements including the identity have their rows and columns completely blanked. Simon Tatham 2010-01-05 19:52:52 +00:00
  • 66a6a930c5 Yikes! Fix a misaimed 'sizeof' which I only got away with because ints and pointers are usually the same size. Simon Tatham 2010-01-05 18:51:42 +00:00
  • ed4b163b69 A user asked for the < signs in Unequal to be bolder. Simon Tatham 2010-01-05 18:26:55 +00:00
  • 81c65eeac1 Missing piece of code I should have cribbed from Solo: we have to lay out large numbers of pencil marks differently in a square containing a clue. Simon Tatham 2010-01-05 18:26:44 +00:00
  • c3c186d687 Another 16-bit-cleanliness fix (and for once I spotted it before James!) Simon Tatham 2010-01-05 18:26:42 +00:00
  • 4dfd8512ab Memory leak fix from Tiago Dionizio: whenever we free the midend's collection of game states, we should also free the move strings from which they were constructed. Simon Tatham 2010-01-04 19:14:35 +00:00
  • 56b421a632 16-bit cleanliness patch from James H. Simon Tatham 2010-01-04 18:55:56 +00:00
  • 441cbbb2e0 For my own use in local Windows builds of the 'unfinished' puzzles, add an include directory to the Windows makefile so that source files in subdirectories can find the main headers. Simon Tatham 2010-01-01 20:06:34 +00:00
  • 79bb9c00b3 Couple of missing 'static's. Simon Tatham 2010-01-01 19:41:59 +00:00
  • c91471e6c1 New puzzle in 'unfinished'. Essentially, Sudoku for group theorists: you are given a partially specified Cayley table of a small finite group, and must fill in all the missing entries using both Sudoku- style deductions (minus the square block constraint) and the group axioms. I've just thrown it together in about five hours by cloning- and-hacking from Keen, as much as anything else to demonstrate that the new latin.c interface really does make it extremely easy to write new Latin square puzzles. Simon Tatham 2009-12-30 16:53:36 +00:00
  • b629e34beb Fix bug causing array overrun. Only seemed to be showing a symptom on Windows, presumably because the data after the array was harmless elsewhere. Simon Tatham 2009-12-27 19:18:22 +00:00
  • 514bd502be New puzzle! 'Keen', a clone of KenKen. Simon Tatham 2009-12-27 10:01:23 +00:00
  • a79ab34941 Normalise Unequal (and latin.c) so that solver diagnostics start their coordinate from 1 rather than 0, for consistency with Solo. (My geek instincts would rather work from 0, but I've generally found that puzzle users sending me email tend to prefer 1.) Simon Tatham 2009-12-27 10:01:20 +00:00
  • 3c3368d07f I've never trusted common variables. Take those bare ints out of latin.h and put them in latin.c with 'extern' declarations in the header. Simon Tatham 2009-12-27 10:01:18 +00:00
  • 9fbb365684 Introduce, and implement as usefully as I can in all front ends, a new function in the drawing API which permits the display of text from outside basic ASCII. A fallback mechanism is provided so that puzzles can give a list of strings they'd like to display in order of preference and the system will return the best one it can manage; puzzles are required to cope with ASCII-only front ends. Simon Tatham 2009-12-27 10:01:16 +00:00
  • 72922b3078 Tweak the semantics of dsf_merge() so that the canonical element of any equivalence class is always the element with the smallest index. This is slower (the previous behaviour, suggested by Jonas Koelker, was to choose the new root element to maximise performance), but still more than acceptably fast and more useful. Simon Tatham 2009-12-27 10:01:11 +00:00
  • 189f833980 Refactor latin.c to make it easier to reuse. Instead of client programs having to clone the latin_solver() function and insert their own extra deduction routines, they can now just _call_ latin_solver with enough parameters to let it fit its own deductions into their difficulty framework and call a set of provided function pointers to do user deductions. Modified Unequal to work in the new world, of course. Simon Tatham 2009-12-27 10:01:10 +00:00
  • b9c22e5cac New mode for Unequal, from James H. In this mode, called 'Adjacent', the < and > clues are replaced by bars separating every pair of squares whose contents differ by exactly 1. Unlike standard Unequal, which presents only a subset of the available clues, in Adjacent the clues are _all_ present, so you can deduce from the absence of a bar that the two numbers it would separate are _not_ consecutive. Simon Tatham 2009-12-27 10:01:09 +00:00
  • d54b4c4651 latin_generate_quick is long gone, so remove it from the header file. Simon Tatham 2009-12-23 11:34:25 +00:00
  • 2b06c12728 Keyboard control for Dominosa (patch largely due to James H, though with considerable meddling from me). Simon Tatham 2009-12-22 16:47:42 +00:00
  • 2bdabe31cf Jonas Koelker points out that the backspace key didn't work in GTK Guess, because Guess expected ^H whereas GTK generated ^?. Other puzzles that use Backspace do it by being prepared to see either, which seems wasteful. Now the midend normalises both into ^H, so front ends can generate whichever they like while puzzles can safely just look for ^H. Simon Tatham 2009-12-20 10:01:57 +00:00
  • 8628a0630c Minor bug fixes from James Harvey. Simon Tatham 2009-12-17 18:20:32 +00:00
  • 97477f0916 Patches from Frode Austvik to modify the effects of the mouse buttons in several games if STYLUS_BASED is defined: in games where you can set a puzzle element to 'on', 'off' or 'not yet set', when it's hard to mimic a second mouse button, it's better to have the one 'button' cycle between all three states rather than from 'on' back to 'unset'. Simon Tatham 2009-12-17 18:16:42 +00:00
  • 6d5245d8bf Patch from Frode Austvik to tinker with the GTK interface if compiling gtk.c with STYLUS_BASED defined: most notably, it provides a row of numeric 'keys' made of GTK button widgets for puzzles that want a numeric keypad. Simon Tatham 2009-12-17 18:12:18 +00:00
  • 84d48aa074 Patch from Frode Austvik to permit passing CFLAGS in to the Unix makefile. Simon Tatham 2009-12-17 17:55:42 +00:00
  • 525370a569 Another wording tweak from Helge Kreutzmann. Jacob Nevins 2009-12-13 12:47:10 +00:00
  • 2ac017b62c Fix for the grid generation in the presence of particularly strange grid types. Simon Tatham 2009-11-16 21:21:00 +00:00
  • 9c95ea2619 Add a precautionary pair of initialisations to placate optimisers, and asserts to check that the preinitialised values are never actually used. Simon Tatham 2009-11-10 19:11:03 +00:00
  • ddbe9abe8a Remove ASCII-art arrows. Missing \dash (Debian bug #522439). Jacob Nevins 2009-11-05 14:09:04 +00:00
  • 92bd8da9c4 Beat up on Black Box docs, after Debian bug #548472. Jacob Nevins 2009-11-04 13:19:39 +00:00
  • 730462ab13 Typo fixes from Debian bug#554341. Jacob Nevins 2009-11-04 12:06:32 +00:00
  • 236889f6d6 Single mouse clicks to toggle individual grid edges stopped working in r8414 as a side effect of reorganisation in interpret_move(). Reinstate them. Simon Tatham 2009-10-13 17:09:42 +00:00
  • 4f6e48e6be Add a couple of missing checks in validate_desc(), without which bogus game IDs were getting as far as new_game() and failing assertions. Simon Tatham 2009-09-16 12:57:07 +00:00
  • 466c398a00 Minor rewording and typo-correction. Simon Tatham 2009-09-16 11:06:02 +00:00
  • ddfa693b0f Aha, I've managed to prove that my inadequate error highlighting is actually just about adequate after all. Large comment added containing some discussion and the proof. Simon Tatham 2009-09-16 10:57:11 +00:00
  • 84d012998f Error-highlighted trees look nicer with a different-coloured trunk. Also added a comment worrying about the universality of my error highlighting mechanism. Simon Tatham 2009-09-13 14:43:21 +00:00
  • dfb8fa2e92 Redo Mines and Inertia's mine graphics using an actual circle rather than an approximating octagon, to improve the look when zoomed to high resolution. Simon Tatham 2009-09-13 13:08:34 +00:00
  • e2522c2897 Tweak to the promptness of error highlighting display. Simon Tatham 2009-09-12 12:54:49 +00:00
  • 1b927c77b7 About time I got round to this: error highlighting for Tents. Simon Tatham 2009-09-12 12:30:43 +00:00
  • 503f6650e9 Fix width/height braino introduced in r5844. Simon Tatham 2009-09-09 18:22:14 +00:00
  • e794621861 Add execute permission to the .exe files inside the zip file. Simon Tatham 2009-08-28 17:43:44 +00:00
  • cfdba00313 More defensive-coding fixes from James H. Simon Tatham 2009-07-01 22:01:21 +00:00
  • 652f03a8ae Patch from Mark Wooding: when I did r7980 I had completely failed to notice that there was an _official_ way to have menu items marked as selected or unselected, which is the GtkRadioMenuItem class. Replace my ad-hoc use of bullet characters with that. Simon Tatham 2009-06-21 13:49:09 +00:00
  • 93cd7ae62c Patch from Mark Wooding: use gdk_event_request_motions() where available, which magically seems to eliminate most if not all of the update lag when dragging a point in a large (say 250-point) Untangle. I don't fully understand how this works, but it seems to! Simon Tatham 2009-06-21 13:39:54 +00:00
  • ec29642539 Patch from Mark Wooding: stop setting GTK_EXPAND for the x-direction on labels in tables. The effect is that if you resize (e.g.) Solo's configuration panel, the labels to the left of the various input boxes will remain just big enough to fit their text in, and all the extra space will be taken up by the useful part, i.e. the input boxes themselves. Previously the labels and input boxes would expand in a 1:1 ratio, causing lots of space to the right of the label text that wasn't used for anything. Simon Tatham 2009-06-21 13:34:50 +00:00
  • 767ec24009 Patch from Mark Wooding: one-pixel fix to the alignment of the bottom and right edges of the Tents keyboard cursor. Simon Tatham 2009-06-21 13:28:43 +00:00
  • 4ecc4f92d8 Patch from Mark Wooding (though somewhat tampered with by me): have Loopy mark LINE_NO grid edges with very faint lines, instead of leaving them totally undrawn. Helps in complex grid types where the line layout isn't entirely obvious to a player not already familiar with it. Disableable by setting LOOPY_FAINT_LINES=n in the environment, just in case anyone turns out to seriously dislike it. (You could probably disable it via LOOPY_COLOUR_6 too, but you'd have to know the exact shade of your background to get that right.) Simon Tatham 2009-06-21 13:24:48 +00:00
  • 0687980f0c Memory management and other fixes from James H. Simon Tatham 2009-06-17 20:01:45 +00:00
  • 3cd83d05e8 Fix a misdesign I must have missed when I reviewed the Killer patch: merge_some_cages() was written in the assumption that it would always be able to do something, in that it returned void on success and if it couldn't find anything to do it would just loop round forever trying the same things over and over again. Simon Tatham 2009-04-30 17:56:56 +00:00
  • 4bb9232bcb check_valid() wasn't checking that Killer cages contain at most one of each digit, and - perhaps more importantly - the display code wasn't highlighting violations of that rule as an error. Fix both. Simon Tatham 2009-04-29 23:11:10 +00:00
  • c696ee2220 It's been a new year for some time now. Jacob Nevins 2009-03-19 23:32:30 +00:00
  • 66efa90048 Patch from James H to provide 16-bit-int cleanliness in Killer Solo. Simon Tatham 2009-03-02 23:32:43 +00:00
  • 706e27de8d Patch from James H to abstract out of Dominosa the code which randomly generates a tiling of a rectangle with dominoes, since he wants to reuse that function in another puzzle. Simon Tatham 2009-03-02 19:45:59 +00:00
  • 99ca11bf8b Make menus accessible from the keyboard in the Gtk front-end. Jacob Nevins 2009-03-01 13:51:32 +00:00
  • cc7024b433 Fix cosmetic glitch in the interaction between Killer and Jigsaw modes. Simon Tatham 2009-02-24 07:49:01 +00:00
  • 649719a964 Make icon building cope with Solo's increased default tilesize as of r8455. Jacob Nevins 2009-02-23 17:42:50 +00:00
  • 87bd938ebf Fix duplicate keyword. Jacob Nevins 2009-02-22 12:57:20 +00:00
  • 3d6de1eb47 A substantial patch to Solo from Bernd Schmidt, adding support for the 'Killer Sudoku' puzzle type. As a side effect I've had to increase the default tile size of Solo, so that the extra numbers drawn in the squares in Killer mode were still legible. Simon Tatham 2009-02-22 12:16:54 +00:00
  • 407f29c46f Introduce some infrastructure to permit games' print functions to draw dotted lines. No puzzle yet uses this, but one's about to. Simon Tatham 2009-02-22 12:05:38 +00:00
  • 9249f09619 Fix the Java front end's vertical text positioning when ALIGN_VNORMAL is in use: ALIGN_VNORMAL indicates that the supplied y-coordinate denotes the _baseline_ of the text, not its top, so adding on 'asc' to convert to the baseline is wrong. Simon Tatham 2009-02-22 12:02:40 +00:00
  • 5027095ce2 Keyboard control patch for Bridges, from James H. Simon Tatham 2009-02-05 19:29:26 +00:00
  • 279c678179 Lee Dowling points out that duplicating the entire grid data structure in every game_state is terribly wasteful. Move all the constant bits of it (i.e. everything except the per-square 'blue' flag) into a ref-counted shared structure. Simon Tatham 2009-02-05 19:25:44 +00:00
  • 918842835b Keyboard control patch for Black Box, from James H. Simon Tatham 2009-01-28 18:28:41 +00:00
  • 8a3f525a54 Keyboard control patch for Twiddle, from James H. Simon Tatham 2009-01-28 18:27:10 +00:00
  • cd3a7d89ce Keyboard control patch for Pattern, from James H. Simon Tatham 2009-01-27 18:30:46 +00:00
  • 921a054f0a Keyboard control for Map, from James H. Simon Tatham 2009-01-27 18:26:10 +00:00
  • 4d79c71517 Reorder if statements in Unequal's interpret_move() so that presses of 'h' and 'm' are treated as digits if a square is selected, and only treated as special commands otherwise. This renders very large games (just about) playable. Simon Tatham 2009-01-26 22:28:17 +00:00
  • cc0f957d82 Patch from James H to add keyboard control in Sixteen and Netslide (and also belatedly document the keyboard support in Unequal). Simon Tatham 2009-01-26 19:14:44 +00:00
  • d2b0d8cf3f Switch over to using the new-style GtkFileChooser in place of the deprecated GtkFileSelection, at least when the latter is available. Patch mostly due to Ori Avtalion. Simon Tatham 2009-01-26 19:11:34 +00:00
  • ff62f0aaff Add an automatic check for HAVE_SENSIBLE_ABSOLUTE_SIZE_FUNCTION by using PANGO_CHECK_VERSION. (Irritatingly, the latter is not available in all versions of Pango, so we have to be cautious about using it at all. *sigh*) Simon Tatham 2009-01-24 17:58:42 +00:00
  • 47c3878dc7 Keyboard control patch for Pegs, from James H. Simon Tatham 2009-01-20 18:28:28 +00:00
  • f46eceb714 Keyboard control patch for Solo, from James H. Simon Tatham 2009-01-19 18:38:29 +00:00
  • 4169a54831 Keyboard control patch for Slant, from James H. Simon Tatham 2009-01-16 18:52:18 +00:00
  • 28acb0ebdc Keyboard cursor support for Tents, from James H. Simon Tatham 2009-01-16 18:50:22 +00:00
  • fa23fc3943 r8396 introduced midend_tilesize(). Document it. Simon Tatham 2009-01-16 18:45:01 +00:00
  • 5480199874 Keyboard cursor support for Rectangles, from James H. Simon Tatham 2009-01-15 18:20:02 +00:00
  • 4850845205 Keyboard cursor support in Galaxies, by James H. Simon Tatham 2009-01-15 18:18:21 +00:00
  • c826fdc062 Keyboard interface for Filling, from James H. Simon Tatham 2009-01-14 20:44:25 +00:00
  • 96315bc2ba Patch from James H to fix some off-by-one errors in Guess's click rectangle checking, preventing array bounds violation. Simon Tatham 2009-01-12 20:30:12 +00:00
  • 4a202808ee Patch from James H which adds keyboard cursor support to Unequal, and also updates the docs for both that and the Mines cursor support in r8402. Simon Tatham 2009-01-12 20:23:56 +00:00
  • f20847354c Patches from James H to add or improve arrow-key-driven cursors for some puzzles. (Light Up's and Net's are merely polished a bit, but Mines acquires a new one.) Simon Tatham 2009-01-08 18:28:32 +00:00
  • fee17c3704 Patch from Lambros to make the Normal difficulty level easier, since people have generally seemed to think Loopy is one of the more difficult puzzles in the collection. There's a new level called Tricky, between Normal and Hard, which is equivalent to the old Normal. Simon Tatham 2009-01-07 23:07:11 +00:00
  • d9e39add3a Standalone solver for Loopy. Bit half-hearted, since the solver doesn't have diagnostics embedded and the ASCII formatter can't print non-square puzzles anyway; but it can grade difficulty, which is what I most immediately want it for. Simon Tatham 2009-01-07 21:55:21 +00:00
  • 7888d8db67 Patch from James H to enable a single monolithic binary to be built alongside the individual puzzle binaries, on Windows only. (MacOS already has it, of course; Unix would require about as much work again.) Simon Tatham 2009-01-06 23:26:18 +00:00
  • 6328483bb4 Bring the unfinished .R files into line with the current conventions. Simon Tatham 2009-01-06 23:21:42 +00:00
  • 17334d1945 Don't ignore the return code of fwrite(). (Slight modification of a patch from Phil Bordelon.) Simon Tatham 2008-12-12 19:49:05 +00:00