Thanks a lot for the great answers, everyone! I really appreciate it. I've already learned a lot, like that Windoku has 9 extra constraints instead of the obvious 4!
It pretty much means that it probably can't be supported by my new system, unlike I originally thought.
In any case, it's obvious that the NgGrYcX is the most generally applicable coordinate system, and it would be nice to standardize it as much as possible. I'm willing to work on that too, if there's interest. My new system is not meant to replace it at all, and it's not capable of it either. It's just a shortcut for the most common addressing needs, especially for the vanilla (9x)9x9 sudoku. One goal is to shorten the chains, fishes, and matrices we use in the Puzzles section, as the NrYcX-coordinates take a lot of space and in some ways hinder readability as well. (Note that I still think that those coordinates are the most intuitive to understand, which is another reason to keep them as the main standard.)
My system will never work for anything bigger than (9x)9x9, so variants like (16x)16x16 are for sure out of its league. It might work for some gattais with 9x9 subgrids, but I haven't really thought about it (it would need a standard way to address the g-coordinate). It could work for some 9x9 variants with few extra constraints, such as Sudoku-X and Asterisk. It might work with 9x9 Killers and Jigsaws, but I haven't put much thought into that either. For basic cell addressing it works for any 9x9 grid (or smaller), but my wish to have a consistent way to address the extra constraints (for fishing) and even their cells (for subsets) limits its full applicability, unless some non-confusing escape mechanism is built into it. All of these are open questions at the moment.
Let me introduce my proposed system at this point, so you know what I'm talking about. Also, if someone recognizes it as an already existing system, please let me know. Otherwise it probably needs a name so it can be referred to. My working title for it is
19aIrZ, which pretty much describes it as well. (That's a capital-i in case the font makes it look like a lowercase-L or a 1 -- a known problem, though less severe in practice because of other design choices). It's obviously very close to existing systems that use letters for coordinates, but I'm not sure if any exist with the exact same idea.
The idea is that every coordinate in a vanilla sudoku (n, r, c, b, p) has its own set of nine symbols that can't be confused with each other, making it possible to refer to them with a single symbol. It shortens both chains and fishes (including generic truths and links) considerably, and makes matrices much more compact. Another goal is that contrast should be maximized by placing symbols of different sizes next to each other, unless they belong to the same set. It means that digits and uppercase letters, or two lower-/uppercase letters, shouldn't normally be adjacent (some exceptions allowed, as in fishes or if solving in alternate spaces, but in those cases some separators should be considered to enhance readability). That way non-required brackets or other separators can be mostly avoided while still maintaining reasonable readability, which further shortens chains etc. The chosen symbols are:
- Code: Select all
n: 1 2 3 4 5 6 7 8 9
r: a b c d e f g h i
c: A B C D E F G H I
b: r s t u v w x y z
p: R S T U V W X Y Z
The normal ordering for cell or subset coordinates is:
- Code: Select all
NrC or NbP
And for (single-digit) fishes:
- Code: Select all
N{rCb\rCb}
In other words, (3)r4c8 would be 3dH, and (7)b5p6 would be 7vW. Groups and subsets work normally: (6)r23c7 is 6bcG, (123)r1c689 is 123aFHI, (4567)b2p1389 is 4567sRTYZ. Fishes work too: Swordfish (3)c479\r158 is 3{DGI\aeh}, and Finned Mutant X-Wing (2-String Kite) (5)r1c5\r7c1b2 is 5{aE\gAs}. Fishing is one reason why I chose separate letters for the boxes, even though it complicates things a little bit.
As for truths and links (or what I call Alien Fishes), Allan Barker's idea of using uppercase for truths and lowercase for links must obviously be dropped with these coordinates (those roles should be obvious anyway, so it's a pretty redundant convention in the first place). Here's the Easter Monster SK-Loop expressed as an "Alien Fish" using this system: {bhACGI acgiBH \ 38b 45h 48.B 39H 27rz 16tx}. Normally it would be {28N1379 1379N28 \ 38r2 45r8 48c2 39c8 27b19 16b37}. It's not that much shorter but it avoids the annoyingly unintuitive N-syntax for cell sets.
So, that's the basic idea. For those used to the (N)rYcX-coordinates (myself included), it takes a while to get used to, but not as much as I thought. It's actually quite convenient in practice. My choice of the first and the last nine letters in the alphabet should make it easy to remember, even though other choices (like using J or K instead of I) might be more readable. If it proves problematic in practice, that choice could be revisited. I think the problem is mostly avoided with the adjacency rule, but as we've seen, there are exceptions when it can't be followed. Another problem is B vs 8 if they have to be adjacent, as in that Alien Fish above (hence the dot between them).
There are still eight letters left (j k l m n o p q) in the alphabet, so 2x8 symbols available to use for extra coordinates in variants, if one wishes (though I would definitely avoid the lowercase-L). Of course every addition makes things more complicated, so I'm not sure how good of an idea it is. Sudoku-X seems like the most viable candidate because it only has two extra constraints. If they were assigned p and q, for example, then each of their nine cells could be addressed by using the same position letters (R..Z) as for boxes. In other words, (2)d1p6 (r6c6) would be 2pW, and (2)d2p3 (r7c3) would be 2qT. Of course, the real benefit is when using diagonal-based subsets or fishes.
Any thoughts?
Added.
An example.