Comments/Ratings for a Single Item

Well, I am not sure that it would be helpful (or even possible) to express each an every rule of a game as moves of the pieces. 'Exciting with a null move' is not the same as freezing; 'exciting' in its usual context means that a piece gets the specified move in addition to its own moves. So logically, exciting with a null move would mean the targeted piece (and thus the player handling it) is now also allowed to pass his turn.
The point is that freezing is not directly associated with any movement of the piece that causes it. It is an influence exerted by the piece due to its presence alone, which doesn't take a turn. (What the Interactive Diagram calls a 'spell'.) There are other spells, such as only robbing neigboring pieces of their capture moves, and there are also 'persistent spells' the effect of which would even last after the source moves away ('burning' being the simplest example of that). If all that should be expressed in the move notation we would need a large number of additional modifiers.
I agree that there is a spatial effect to the spells, which conveniently can be expressed in Betza notation. But I think it is more logical to keep moving separate from other effects, and describe a piece like the Ultima Immobilizer like "moves as Q, freezes as K". The Interactive Diagram already supports something like that in an ad-hoc way, by allowing you to choose one particular spell and define its spellZone as W, F, K or N. In practice it is quite rare that different kinds of spells are needed in the same variant. But perhaps a future version will implement this as well.
Ah, I'm starting to understand it now. (The "spell" has no automatic entry, and must be entered onto the code manually; that's what threw me.)

And beware it also only works when you use the betzaNew.js script rather than the betza.js.
I want a dabbabah that is blocked at ferz squares. I came up with masF. Am I wrong or there is a bug?
I tried this out, and it works that way for me. The m in your string means it wouldn't be able to capture, though; was that your intent?
It should not be able to capture at the intermediate square. This is what does not work.
It already won't capture at the intervening space with just asF. All the m does is stop it from capturing at the destination.
If you wanted it to be able to capture in the intervening square, you'd have to make it a Locust capture (see the fifth item in the Appendix section).
Ok, but the betza string tester says otherwise!
Hm... not when I use it.
Try it in an actual Interactive Diagram (such as on the playtest applet page), and playtest it. If Black can capture pieces a Ferz-step away with just asF, then there's a problem.
For my own part, I'm having a little trouble with two pieces that I can't quite figure out.
1. A piece that I'm alternately calling the Springer, Bouncer, Leapfrog, or Tigger. It jumps onto a piece in a neighboring square (without whose help it cannot move), and from there makes a Queen's move.
2. The Friend, which seems to me should be somehow doable with the I atom, though that looks like it (the I atom) may be too restricted. (I suspect that that's what the proposed M atom is for.)
I can't from what I find here find the Betza string for the ship (the vertical directions of a gryphon). In Fantastic XIII JLC uses other formulas I'm not used too.
I have figured it out. It is :
bryafrFblyaflFfryaflFflyafrF

FyaqfF achieves the same effect much more parsimoniously, using the extended senses of z and q that H.G. introduced
Mostly for reference, the atoms not currently in use are E, M, S, T, and V (a shorter list than I thought).
Originally, that was going to be purely for reference; but with that list being so unexpectedly short, I support using the M atom for "Mirror" as proposed, but seeing if there's a way to expand it so it could be used to take the moves of adjacent pieces, of pieces that could be reached by the move of a certain piece or pieces (King being the default), etc.
And maybe S could somehow be set aside for Special abilities like immobilizing, slowing (as with the Hia/Bodyguard), or other passive properties (implementation TBD).

'Move borrowing' is already implemented as an overloading of the 'induction' modifier x: in its original use the x could be used in the non-final leg of a multi-leg move description, to indicate it should end on a friendly piece, and that the remaining legs then should be performed by the piece landed on, rather than the piece for which the move was calculated. Because it did not seem useful to induce null-moves in other pieces, the case where there were no remaining legs (i.e. when the x is used on the final leg) was later defined to do the reverse: it made the original piece move as the piece on which the x-leg ended.
Of course the 'move borrowing' could have been considered move induction by the piece that is borrowed from on the piece that is borrowing, but variants that have this feature typically limit such induction to one specific target type (the move borrower), while genuine induction would typically make the inducer enable the move in any of its targets. So to describe move borrowing as induction raises the issue of type selectivity, while Betza notation is typically 'type-blind'.
Main shortcoming of this system is that it does not allow for 'enemy induction'. The only case of that I was aware of was the Ultima Chameleon, however. Hence the proposal for M.
I still think that effects like immobilizing are not moves. We should also realize that Betza notation is only useful in so far it can be easily remembered what the symbols mean, or should be. Defining very specific symbols for describing rules that almost never apply would not satisfy that requirement. The x modifier is already stretching this. People would in general not understand what you mean if you say 'this piece moves as mN[xN-N] (as in Knight-relay Chess). The main reason for me to implement it is that XBetza notation serves the additional purpose of configuring the Interactive Diagram for playing a given variant, and that I wanted the latter be able to implement Scirocco and Odin's Rune Chess.
Yes, I understand. The Interactive Diagram is literally the only reason I even brought this up.

But the Interactive Diagram already supports features like immobilization in an alternative way. With a very modest amount of custom scripting I even managed to implement the Chamelion in the Ultima Diagram.
Can there be (for example) an Immobilizer and a Bodyguard in the same game?
(If the answer is yes, I'll shut up about it -- at least, until I need help coding it. But the list of still-availabe atoms is still worth noting, at least for reference.)

Currently that would not be possible without custom scripting. But that is more a matter of the interface than of the implementation. Currently there are parameters for designating the piece type that casts a spell, and a separate parameter then indicates what that spell is, and where it applies relative to the piece (spell and spellZone). It would be relatively easy to not apply the latter two universally (remembered in a scalar variable) to every piece that casts a spell, but make an array of those indexed by piece type. Where the value of the parameters only applies to the latest piece type defined before them. (And only universally when they occurred before any pieces were defined.)
You could then define things like:
Immobilizer::mQ:: spell=freeze spellZone=K Fire Dragon::mQ2:: spell=burn spellZone=F ...
The point is that each flavor of spell can in principle have a different spell zone, and for the zone alone you would already need a system as versatile as Betza notation. That leaves no room for indicating what type of spell is casted in that zone.
That, I think, would be a great thing.
It also did occur to me that V could be used to indicate a vertical extension the way X and Y extend a move orthogonally and diagonally, but then there's the problem of how to indicate rising-only and falling-only moves, as well as the interface for multiple levels... yeah, I think it'd be worth keeping in the back of your mind, but I'll be absolutely unsurprised if it just stays there and never comes out.
I also need to figure out how to implement things like "jumps like a Zebra, then optionally slides like a Bishop." I know it's in there, but I just can't quite grasp it for some reason. I have no immediate need, though.

The Z leap must be expressed as K steps, joined 'transparently' through mp mode. E.g. mpafsmpyafW. The more elegant bracket notation [Z?B] is ambiguous, because it is not clear what 'forward' is for a diagonal step after a Z leap.
Ouch. Somehow I thought it was simpler than that. Perhaps a case study (in this case, the title piece from Tiger Chess, though I'm also fond of the same game's Astrologer) would be in order.
The more elegant bracket notation [Z?B] is ambiguous, because it is not clear what 'forward' is for a diagonal step after a Z leap.
Afterthought: I'd think of "forward" from a hippogonal move as being parallel to the nearest orthogonal line (or, for a diagonal move, the nearest diagonal line).
In the case of the Tiger from Tiger Chess, the author didn't use the word "forward" but "outward" instead. In my opinion, with that word the definition is clear and not really ambiguous.
It is less obvious for me in the case of the Pegasus, leaping as a Knight then sliding outward as a Rook. The second leg can be understood with 2 manners. 1) f7 to g9 then sliding vertically to g12 2) f7 to g9 then sliding horizontally to l9.
25 comments displayed
Permalink to the exact comments currently displayed.
Here's a simple idea for Immobilizing: x0 -- basically, "exciting" with a zero move. My Jellyfish could then be mKx0K, while the classic Immobilizer would be mQx0K.
It would default to a passive ability to all squares, but something like mx0 could make it something deliberate affecting only one piece, until the piece doing the Immobilizing either moves or is captured, or until the target piece is passively moved (such as with a displacement or relay). So, a Wizard able to do this into his own moves would be FCmx0Fmx0C.