aboutsummaryrefslogtreecommitdiff
path: root/loopy.c (follow)
Commit message (Collapse)AuthorAge
* Minor bug fixes from James Harvey.Simon Tatham2009-12-17
| | | | [originally from svn r8785]
* Patches from Frode Austvik to modify the effects of the mouseSimon Tatham2009-12-17
| | | | | | | | | | 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'. [originally from svn r8784]
* Fix for the grid generation in the presence of particularly strangeSimon Tatham2009-11-16
| | | | | | grid types. [originally from svn r8750]
* More defensive-coding fixes from James H.Simon Tatham2009-07-01
| | | | [originally from svn r8605]
* Patch from Mark Wooding (though somewhat tampered with by me): haveSimon Tatham2009-06-21
| | | | | | | | | | | | 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.) [originally from svn r8597]
* Patch from Lambros to make the Normal difficulty level easier, sinceSimon Tatham2009-01-07
| | | | | | | | | 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. [originally from svn r8398]
* Standalone solver for Loopy. Bit half-hearted, since the solverSimon Tatham2009-01-07
| | | | | | | | 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. [originally from svn r8397]
* Patch from Lambros to improve the generality of path-generation. InSimon Tatham2008-11-04
| | | | | | | | particular, Great Hexagonal tilings previously had virtually every (if not _actually_ every) hexagon on the inside of the path, and now don't. [originally from svn r8277]
* Lambros points out that trying to generate a 3x3 Cairo Easy gridSimon Tatham2008-09-18
| | | | | | | | | | | | | spins forever, but observes that raising the limit to 4x4 across all grid types is not good for the complex grids like great-hexagonal. Introduce per-grid minimum sizes using mad macro trickery. (In fact, for each grid type I've put in a minimum size which _both_ dimensions must equal or exceed, plus another minimum size which _at least one_ must equal or exceed; that permits both 3x4 and 4x3 Cairo while disallowing 3x3.) [originally from svn r8191]
* Patch from Lambros implementing error highlighting in Loopy.Simon Tatham2008-09-18
| | | | [originally from svn r8190]
* Cosmetic: fix mismatch between game_compute_size() and game_redraw()Jacob Nevins2008-09-16
| | | | | | (was causing unwanted "drop-shadow" type effect). [originally from svn r8186]
* Since the lack of this has caused portability issues in the past:Simon Tatham2008-09-13
| | | | | | | add "-ansi -pedantic" to the main Unix makefile, and clean up a few minor problems pointed out thereby. [originally from svn r8175]
* Patch from James H to make new-Loopy port more easily.Simon Tatham2008-09-10
| | | | [originally from svn r8174]
* Having played new-Loopy a bit recently, I've had occasion to think aSimon Tatham2008-09-07
| | | | | | | bit harder about advanced solver techniques. Expand the comment at the top of the file. [originally from svn r8167]
* How did I manage to check this in without actually trying to buildSimon Tatham2008-09-07
| | | | | | | | | on Windows at all?! Fix some departures from the C standard, mostly declaring variables after a statement has already been issued in the same block. MSVC is picky about this where gcc is forgiving, and TBH I'd change the latter given the choice. [originally from svn r8166]
* Completely re-engineered version of Loopy, courtesy of LambrosSimon Tatham2008-09-06
| | | | | | | | | | | Lambrou. Now capable of handling triangular and hexagonal grids as well as square ones, and then a number of semiregular plane tilings and duals of semiregular ones. In fact, most of the solver code supports an _arbitrary_ planar graph (well, provided both the graph and its dual have no self-edges), so it could easily be extended further with only a little more effort. [originally from svn r8162]
* New infrastructure feature. Games are now permitted to beSimon Tatham2008-09-06
| | | | | | | | | | | | | | | | | | | | | | _conditionally_ able to format the current puzzle as text to be sent to the clipboard. For instance, if a game were to support playing on a square grid and on other kinds of grid such as hexagonal, then it might reasonably feel that only the former could be sensibly rendered in ASCII art; so it can now arrange for the "Copy" menu item to be greyed out depending on the game_params. To do this I've introduced a new backend function (can_format_as_text_now()), and renamed the existing static backend field "can_format_as_text" to "can_format_as_text_ever". The latter will cause compile errors for anyone maintaining a third-party front end; if any such person is reading this, I apologise to them for the inconvenience, but I did do it deliberately so that they'd know to update their front end. As yet, no checked-in game actually uses this feature; all current games can still either copy always or copy never. [originally from svn r8161]
* A user points out that Loopy's solver relies on elements of theSimon Tatham2007-07-05
| | | | | | | | `clues' array being able to be -1, so we must explicitly declare it as `signed char' or it will break on platforms whose default char is unsigned. [originally from svn r7636]
* Dariusz Olszewski's changes to support compiling for PocketPC. ThisSimon Tatham2007-02-26
| | | | | | | | | | | | is mostly done with ifdefs in windows.c; so mkfiles.pl generates a new makefile (Makefile.wce) and Recipe enables it, but it's hardly any different from Makefile.vc apart from a few definitions at the top of the files. Currently the PocketPC build is not enabled in the build script, but with any luck I'll be able to do so reasonably soon. [originally from svn r7337]
* Patch from James H which shouldn't change the functionality ofSimon Tatham2007-01-15
| | | | | | Loopy, but makes it build more sensibly on the Palm. [originally from svn r7114]
* HTML Help support for Puzzles, with the same kind of automaticSimon Tatham2006-12-24
| | | | | | fallback behaviour as PuTTY's support. [originally from svn r7009]
* Small printing fix from Gary Wong. Shows up when printing withSimon Tatham2006-12-21
| | | | | | | solutions: the rightmost and lowermost lines of the grid never get solution lines drawn on them. [originally from svn r7003]
* James H's Palm-compatibility updates to the latest Loopy changes,Simon Tatham2006-11-01
| | | | | | | working around bugs in the Palm compiler and removing Palm- incompatible diagnostics such as fprintf. [originally from svn r6889]
* Mike Pinna has done some major reworking of the Loopy solver, givingSimon Tatham2006-10-28
| | | | | | rise to a new Hard difficulty level. [originally from svn r6880]
* Cleanup patch from Ben Hutchings, fixing some odd-looking rangeSimon Tatham2006-05-20
| | | | | | | | checks. He thinks they were harmless (due to being followed by other range checks in RIGHTOF_DOT and friends) but it clearly can't hurt to fix them anyway. [originally from svn r6709]
* Patch from Ben Hutchings to prevent memory leakage during Loopy gameSimon Tatham2006-05-20
| | | | | | generation. [originally from svn r6708]
* Revert a change in an assertion made in r6299. It was right theSimon Tatham2006-01-05
| | | | | | | first time, and now has a comment explaining why! [originally from svn r6511] [r6299 == c389f623f66fe5296f7ef5c66d88884607b82cff]
* Cleanup: it was absolutely stupid for game_wants_statusbar() to be aSimon Tatham2005-10-22
| | | | | | | | | function, since it took no parameters by which to vary its decision, and in any case it's hard to imagine a game which only _conditionally_ wants a status bar. Changed it into a boolean data field in the backend structure. [originally from svn r6417]
* Cleanup: remove the game_state parameter to game_colours(). No gameSimon Tatham2005-10-22
| | | | | | | | | | | | was actually using it, and also it wasn't being called again for different game states or different game parameters, so it would have been a mistake to depend on anything in that game state. Games are now expected to commit in advance to a single fixed list of all the colours they will ever need, which was the case in practice already and simplifies any later port to a colour-poor platform. Also this change has removed a lot of unnecessary faff from midend_colours(). [originally from svn r6416]
* Cleanup: the `mouse_priorities' field in the back end has been aSimon Tatham2005-10-22
| | | | | | | more general-purpose flags word for some time now. Rename it to `flags'. [originally from svn r6414]
* loopy_diffnames[] isn't used, and provokes a warning on OS X.Simon Tatham2005-10-13
| | | | [originally from svn r6389]
* Use game_set_size() to set up the temporary drawstate inSimon Tatham2005-09-23
| | | | | | | | | | | | | | | | | | game_print(), wherever feasible. This fixes a specific bug in Loopy (James H's new field ds->linewidth wasn't being set up, leading to corrupted print output), but I've made the change in all affected files because it also seems like a generally good idea to encourage it for future games, to prevent other problems of this type. There is one slight snag, which is that Map _can't_ do this because its game_set_size() also initialises a blitter. I could fix this by abstracting the common parts of Map's game_set_size() out into a subfunction called by game_set_size() and also called directly by game_print(); alternatively, I could introduce a means of determining whether a `drawing *' was for screen or printing use. Not sure which yet. [originally from svn r6340]
* Bug fix from James H: prevent LINEWIDTH ever reaching zero.Simon Tatham2005-09-18
| | | | [originally from svn r6331]
* Another optimisation patch from Mike, which (among other things)Simon Tatham2005-09-18
| | | | | | | | eliminates gratuitous duplication of the solver state every time it goes round the main loop, in favour of the usual type of `done_something' flag. [originally from svn r6322]
* Optimisation patch from Mike: remember which squares we've entirelySimon Tatham2005-09-15
| | | | | | finished dealing with, and don't do them again on the next loop. [originally from svn r6312]
* Patch from Mike: fix an array indexing error in the clueSimon Tatham2005-09-13
| | | | | | highlighting, and adjust the presets. [originally from svn r6303]
* Patch from Mike:Simon Tatham2005-09-12
| | | | | | | | | | | | - remove the backtracking `Hard' level, on the grounds that it was incredibly slow and not really usable. - introduce an `Easy' difficulty level below the standard one; many people seem to find this puzzle unusually hard, so an easy level is particularly helpful. - highlight unfulfillable clue squares (but not yet any other types of obvious error). [originally from svn r6299]
* Minor improvement to initial loop generation.Simon Tatham2005-09-11
| | | | [originally from svn r6292]
* Patch from Ton van Overbeek to correct Loopy's misplaced line endsSimon Tatham2005-09-04
| | | | | | at small tile sizes. [originally from svn r6270]
* Palm fixes for Loopy from James H: a #ifdef SLOW_SYSTEM, and anSimon Tatham2005-09-01
| | | | | | int/long fix. [originally from svn r6256]
* Memory leak and type safety fixes from James H.Simon Tatham2005-08-25
| | | | [originally from svn r6219]
* Phil Bordelon points out that the general convention is to orientSimon Tatham2005-08-25
| | | | | | rectangular presets in a portrait fashion. [originally from svn r6217]
* Mike points out that I made an error in one of the presets...Simon Tatham2005-08-25
| | | | [originally from svn r6216]
* Optimiser placation for OS X gcc.Simon Tatham2005-08-24
| | | | [originally from svn r6212]
* New puzzle: `Loopy', an implementation of Nikoli's `Slither Link' orSimon Tatham2005-08-24
`Loop the Loop' puzzle. Contributed by Mike Pinna. [originally from svn r6211]