Check out Balbo's Chess, our featured variant for October, 2024.


[ Help | Earliest Comments | Latest Comments ]
[ List All Subjects of Discussion | Create New Subject of Discussion ]
[ List Latest Comments Only For Pages | Games | Rated Pages | Rated Games | Subjects of Discussion ]

Comments by H. G. Muller

Later Reverse Order EarlierEarliest
Interactive diagrams. (Updated!) Diagrams that interactively show piece moves.[All Comments] [Add Comment or Rating]
💡📝H. G. Muller wrote on Sun, Oct 13 08:25 AM UTC:

I changed the highlighting a bit in case of mandatory moves. Rather than not showing any moves for other pieces when there is a piece that must make a prioritized moves, it now shows the grey cross. This is more in line with how it treats pieces that cannot legally move because you have to resolve a check elsewhere.

It also helps to ameliorate a small imperfection that still exists in variants that have prioritized moves in combination with the checking rule. If the latter makes all prioritized moves illegal, the AI is smart enough to know that it should enable all non-prioritized moves. But the highlighting isn't, so the user would then have to play a move highlighted by a cross. Which will now still be handled as the corresponding pseudo-legal move prescribes, i.e. including possible side effects such as promotion or locust capture. Before I just removes the non-prioritized moves from the move list during highlighting. So that they were not highlighted, and if the user would play one, a new move, which would just move the selected piece without any side effects, would be synthesized and performed.


@ H. G. Muller[All Comments] [Add Comment or Rating]
H. G. Muller wrote on Sat, Oct 12 10:48 AM UTC in reply to Aurelian Florea from 10:12 AM:

I now also made it such that after a Joker move the imitated type is mapped to a new type as well, rather than staying the same. So the rule is that a Joker imitates the defined 'successor type' of the last moved or imitated piece type. Where by default the successor of each type is the type itself.


H. G. Muller wrote on Sat, Oct 12 09:52 AM UTC in reply to Aurelian Florea from 09:04 AM:

OK, I see. The piece you click should have moves that get highlighted, in order for the Joker to imitate it. This was a consequence of introducing legality testing on highlighted moves, which must make the move first. I now save the old value of the imitated type before starting the legality test, and restore it afterwards. That should fix it.


H. G. Muller wrote on Sat, Oct 12 07:14 AM UTC in reply to Aurelian Florea from 07:04 AM:

But can you give an example where it happens? Is this a betzaNew.js problem or did betza.js already suffer from it?


H. G. Muller wrote on Sat, Oct 12 04:27 AM UTC in reply to HaruN Y from 01:38 AM:

OK, I see. But this is only in the start position, right?

I suppose there is a more serious issue where "works as designed" does not cover "works as desired": when a Joker is moved the other Joker in the next (half) move still imitates what that Joker imitated. Instead of the mapping of what it imitated.


H. G. Muller wrote on Fri, Oct 11 06:45 PM UTC in reply to Aurelian Florea from 05:47 PM:

I don't understand what you mean. This happens in the Diagram I posted? Cnan you give an example of what exactly I have to do to see something irregular?


H. G. Muller wrote on Fri, Oct 11 05:43 PM UTC in reply to Aurelian Florea from 05:16 PM:

Well, this was the easy part, so I thought I might as well do it immediately. I just had to replace 'imi' by 'imiTable[imi]' in the move generator, and make sure an initialized imiTable would always be present. The harder part is how to make it possible to specify an imiTable in a Diagram-specific way, as a parameter. (Probably using piece IDs, perhaps comma-separated to allow multi-character IDs, etc.)


H. G. Muller wrote on Fri, Oct 11 04:58 PM UTC in reply to Aurelian Florea from Thu Oct 10 05:46 PM:

To get you going I have now made the preliminary change in betzaNew.js that it uses a predefined array 'imiTable' to decide what is imitated. If no such array is defined, the I.D. creates one, and initializes it as imiTable[i] = i for standard imitator behavior. It can be defined by embeded JavaScript in the page. (Which would then affect all Diagrams on that page!) In this comment I embedded:

<script>var imiTable = [0, 2, 3, 4, 5, 7, 6, 1];</script>

This causes a move of type 1 (Pawn) to make the Joker move as 2 (Knight), etc. View in isolation, flushing browser cache to make it work!

files=8 ranks=8 promoZone=1 promoChoice=NBRQF graphicsDir=/graphics.dir/alfaeriePNG/ squareSize=50 graphicsType=png symmetry=none royal=K pawn:P:ifmnDfmWfceF:pawn:a2,b2,c2,d2,e2,f2,g2,h2,,a7,b7,c7,d7,e7,f7,g7,h7 knight:N:N:knight:g1,,g8 bishop:B:B:bishop:c1,f1,,c8,f8 rook:R:R:rook:a1,h1,,a8,h8 queen:Q:Q:queen:d1,,d8 fool:F:fI:fool:b1,,b8 king:K:KisO2:king:e1,,e8


2 Jewels. Larger version of Pink Panther Chess with second jewel and common Thieves. (9x10, Cells: 90) [All Comments] [Add Comment or Rating]
H. G. Muller wrote on Fri, Oct 11 04:27 PM UTC:

Since when are spam messages approved as Comments? The author is not a member, so he should not have been able to post anything here without supervision. And what is worse, he seems to have found a way to make the Comment impossible to edit; I get an error message from the database when I try to submit a modification.


Chess with Different Armies. Betza's classic variant where white and black play with different sets of pieces. (Recognized!)[All Comments] [Add Comment or Rating]
H. G. Muller wrote on Fri, Oct 11 06:27 AM UTC in reply to HaruN Y from 04:21 AM:

Ah, thank you for spotting this! I fixed it now.


@ H. G. Muller[All Comments] [Add Comment or Rating]
H. G. Muller wrote on Thu, Oct 10 05:36 PM UTC in reply to Aurelian Florea from 03:55 PM:

I am very busy at the moment with real-estate matters (renovation of one apartment, and attempts to buy and move to another place), which leaves me very little time to work on chess programming. So the general AI written in C will still stay on the back burner for some time. The mandatory-capture feature was surprisingly simple, because it used the already existing capture matrix, and took me just a few hours, so I could squeeze it into my schedule. What also helped is that it was a feature that potentially had wide application, amongst which one of the most popular chess variants (Suicide Chess). A generalized Joker seems a niche application I never heard of before you brought it up. It would probably require more work, and that I generally dislike imitators didn't help its case either. But if you are eagerly waiting for it I will try to give it somewhat higher priority.

I like Scirocco (as well as Chu Shogi, by which it is clearly inspired) because the emphasis is on relatively weak pieces there. Most variants have a disproportionally large fraction of queen-class pieces, often not adding any minors at all. And I like subtlety better than the brute force this leads to. In large variants the goal of checkmate is usually impossible to achieve until very late in the game, the King sheltering behind several layers of defending pieces. In the mean time you can only hope for a tactical mistake by the opponent leading to a trade that gains some material. In Scirocco promotion can be a second objective, which often gains you more than a piece exchange. It is difficult to defend against even when most of the pieces are still there, because the initial pieces on average are pretty weak. And the large depth of the promotion zone makes it readily accessible even if there are still many pieces; you don't have to fight your way to last rank, like you would have to do to get at the King. And all pieces promote, even the relatively fast ones. So you are always in danger, during every phase of the game.

In addition Scirocco has some peculiariarities that are not very common, such as Checkers-like capture and move induction. (Like Chu Shogi has the multi-leg moves.) Without overdoing it by making too many pieces have these exotic properties. That there are many different pieces might be intimidating for an orthodox Chess player, but as a veteran chess-variants enthousiast I am already familiar with most of those.

I would not say your Apothecary creations are very complex; Brouhaha squares seem pretty easy to grasp. They are just large.


Interactive diagrams. (Updated!) Diagrams that interactively show piece moves.[All Comments] [Add Comment or Rating]
💡📝H. G. Muller wrote on Thu, Oct 10 08:11 AM UTC in reply to HaruN Y from Wed Oct 9 11:30 PM:

I suppose this would be easier to implement, at least at the level of pseudo-legal moves. A piece could have not a single, but a set of move descriptions (e.g. specified by a comma-separated list of XBetza notations). And the move generator would fall back on the next descriptor in the list whenever a descriptor fails to result in any moves.

If the rule would be that having some pseudo-legal moves which happen to be illegal should also allow fallback on the next descriptor, it would harder to implement in the AI. Because illegality of the move will only be discovered when a move has already been searched deep enough to also consider replies. And if a move of a piece that can have fallback would turn out illegal at that stage, it would have to figure out whether that was the only remaining move in the move list for that piece, and if so, turn back to generation to add the fall-back moves.

But of course there is less need to allow fallback in case the primary moves that exist are illegal; one could simply consider the piece pinned in that case. Like pieces that have no fallback would be; these often cannot move at all either. For globally mandatory moves that would be a bit unnatural, because it could potentially freeze all pieces if all mandatory moves would happen to be illegal, and thus lead to strange stalemates.


💡📝H. G. Muller wrote on Wed, Oct 9 08:17 AM UTC:

I now introduced the concept of 'prioritized moves', which is a generalization of mandatory capture. Through the captureMatrix you can now specify in a type-specific way which captures are mandatory. A tilde (~) there would indicate the corresponding capture is prioritized. If a prioritized move is legal, all non-prioritized moves are forbidden. Mandatory capture can then be implemented by prioritizing all captures (captureMatrix=.~6/"/"/"/"/" if there are 6 piece types).

I made the following Diagram to test this: as extra pieces on 10x8 there are a Siren (b1/b8) and a Maniac (i1/i8). Capturing a Siren as well as all captures by a Maniac are prioritized. Only a single priority class is supported, so if both (say) QxS and MxP are possible you can freely choose between those. The Siren moves as King (to not make it too easy to use it as bait for catching a valuable opponent), the Maniac can jump to any desination in the 5x5 area centerd on it (KNAD), which is a short-range move, to not make it too easy to draw it out.

Only the latest betzaNew.js supports this, so flush your browser cache, and view in isolation (so other Diagrams on the same page using betza.js do not spoil it). It might be worth posting this as an article ('Siren Chess').

satellite=sirene ranks=8 files=10 maxPromote=1 promoChoice=QRBN graphicsDir=/graphics.dir/alfaeriePNG/ squareSize=50 symmetry=mirror firstRank=1 lightShade=#FFFFCF darkShade=#70B09F rimColor=#0F0F90 coordColor=#EFEF1F whitePrefix=w blackPrefix=b graphicsType=png useMarkers=1 borders=0 newClick=1 captureMatrix=.6~/"/"/"/"/"/.~8/.6~ pawn::::a2-j2 knight:N:::c1,h1 bishop::::d1,g1 rook::::a1,j1 queen::::e1 siren::K:medusa:b1 maniac::KNAD:sissa:i1 king::KisO2::f1

💡📝H. G. Muller wrote on Tue, Oct 8 07:06 AM UTC in reply to HaruN Y from 06:27 AM:

Interesting: when I coined the term 'Maniac' I was in doubt whether to call it maniac or berserker. I finally chose maniac because I had already used Berserker as a piece name in Macadamia Shogi.

Offering a Sirene to 'distract' a checking piece is an interesting dilemma. I suppose strictly speaking non-captures would still be pseudo-legal moves even when a capture is possible, as their legality depends on the board situation outside the path of the move. So if checking is defined as a pseudo-legal attack on the King (as FIDE rules do), offering the Sirene would not solve it. But there is another way to look at this, which is that King capture instantly terminates the game, so that you can never expose your own King to any retaliation through it. King capture would then never be illegal due to the checking rule. But it could still be illegal due to the mandatory-capture rule. So the reasoning then would be that winning by King capture would have to be done by a legal move, but that pseudo-legal moves do not become illegal by exposing their King. (But could still be illegal by other global rules, such as blowing up your own King in the process, as in Atomic Chess, or an adjacent Immobilizer.) Then distraction by a Sirene would be an allowed method of check evasion.

I think the latter interpretation of checking is more suitable for chess variants, where you can have pieces that affect each other in all kind of ways.


Alice Courier Chess. Members-Only Alice Chess with two Couriers (BW) and a Jester (two step Ferz). (2x(8x8), Cells: 128) [All Comments] [Add Comment or Rating]

Since this comment is for a page that has not been published yet, you must be signed in to read it.

Charge of the Light Brigade. Seven knights fight 3 queens, and usually win! (8x8, Cells: 64) [All Comments] [Add Comment or Rating]
💡📝H. G. Muller wrote on Mon, Oct 7 04:58 AM UTC in reply to NeodymiumPhyte from Sun Oct 6 10:29 PM:

OK, that is what I thought. But for one, a single game is hardly statistically significant, and even in 10 games you can only draw a (weak) conclusion from a result like 10-0 or 9-1. But if the engine used is excessively weak, even that would be meaningless. Fairy-Stockfish is not automatically strong in every variant you configure it for, just because Stockfish is strong at orthodox Chess. It might have a world-class search, but strength depends on evaluation as well as search. With faulty evaluation good search only backfires, as the engine gets more clever in finding ways to force losing trades, or create trouble for itself in other ways. And the heavy pruning makes it blind for the lines that are actually winning, as it considers those poor play, and thus irrelevant.

QueeNy uses piece values Q=9.5 and N=5, which is not optimal with fewer Knights (where de Q/N ratio quickly goes up), but good enough to avoid getting there. But even then, to effectively clobber Stockfish required removal of the normal King Safety evolution. It could even beat Stockfish and many other top engines of those days with 6N vs 3Q (which is theoretically lost). The top engines never took the opportunity for making a 1-for-2 trade, (the first step for whie towards the win) until it was too late, and they had to sac 1-for-1.


Interactive diagrams. (Updated!) Diagrams that interactively show piece moves.[All Comments] [Add Comment or Rating]
💡📝H. G. Muller wrote on Sun, Oct 6 08:23 PM UTC:

I wonder if it would be worth it to support mandatory capture in the Interactive Diagram. Removing all non-captures from the move list if there is a capture in it would not be that difficult. If that doesn't leave any move (which normally would indicate the side to move is mated), it could undo that, so the search can use non-captures. I have no feeling what this would do for the piece values, though. And it would only work if the rule applies to pseudo-legal captures. (Which would be fine for games like Suicide Chess, which do not have royalty in the first place.)

If non-captures would be allowed when pseudo-legal captures are possible, but all illegal, it would be a bit harder. Whether a move is legal would only become clear after searching it deep enough to see the replies. I guess it could start the same way, though, suppressing all non-captures in the first few depth iterations it does for each position. If at the depth where illegality of captures can be seen no legal moves remain, it should get a second chance to re-enable the non-captures.

Of course we could try to generalize the rule and refine it, by allowing type specifity. E.g. a new symbol in the captureMatrix could indicate which captures are mandatory. Then you could define f.e. pieces that must be captured whenever the opportunity arises ('Sirenes'?), or pieces than must capture whenever they can ('Maniacs'?).


@ Vitya Makov[All Comments] [Add Comment or Rating]
H. G. Muller wrote on Sun, Oct 6 07:33 PM UTC in reply to Diceroller is Fire from 07:23 PM:

Ah, I see. Define different Pawns for each side of the River, and if X is the piece ID of the fsW type write on the line below the definition of the fW type morph=X/X/X/X (meaning it morphs into X on the furthest 4 ranks). Then convert the Diagram definition to GAME code.


H. G. Muller wrote on Sun, Oct 6 05:55 PM UTC in reply to Lev Grigoriev from 02:57 PM:

Why would you need morphing for this variant? This is just a number of pawns all promoting in the same way in a regular zone, right?


Shatranj Kamil (64). Modern Shatranj based variant on 8 by 8 board with new pieces. (8x8, Cells: 64) [All Comments] [Add Comment or Rating]
H. G. Muller wrote on Sun, Oct 6 12:29 PM UTC in reply to David Paulowich from Sat Oct 5 07:58 PM:

Note that King + Bishop are not able to force stalemate, but that giving the Bishop a single extra non-capturing orthogonal step is already sufficient to genreally achieve this.


Charge of the Light Brigade. Seven knights fight 3 queens, and usually win! (8x8, Cells: 64) [All Comments] [Add Comment or Rating]
💡📝H. G. Muller wrote on Sun, Oct 6 11:36 AM UTC in reply to Lev Grigoriev from 09:52 AM:

Also note that the black King should play an active role; it should not be afraid to move to the centre, together with the pack of Knights. If the engine would use the standard king-safety evaluation, which strongly encourages it to cower away in a corner, and then keep a number of Knights there, and the best black can hope for is a draw. Instead black should go for the enemy King, and force the Queens to sacrifice themselves for a single Knight in order to pervent being checkmated.


Joker. Moves like last piece moved by the opponent.[All Comments] [Add Comment or Rating]
H. G. Muller wrote on Sun, Oct 6 09:56 AM UTC in reply to HaruN Y from 06:58 AM:

OK, I see. This seems more about an issue how a mime piece that can be selected from a menu in a particular piece of software should behave to be most generally useful than a discussion about chess-variant design. In such configurable software the solution I discussed with Aurelian seems more flexible (and in fact upward compatible) than any of the options in the poll: allow the user to define an arbitrary mapping similar to the capture matrix between moved piece and what the mime should move as. The promoChoice strings could contain a newly defined special symbol to indicate "as the last-moved piece can promote". This decouples move mimicking from promotion mimicking.


Modern Courier Chess A game information page
. An attempt to reform the courier game by emulating the development of modern chess.[All Comments] [Add Comment or Rating]
H. G. Muller wrote on Sat, Oct 5 07:09 PM UTC in reply to David Paulowich from 06:26 PM:

Note that the percentages you quote are for the strong side to move, and for the checkmating almost exclusively reflect the number of immediate King captures. If the King cannot be captured in the first move, so that the weak side gets the opportunity to move, the winning chances on 8x8 have already dwindled from 27.3% to 1%. The long lines all stay within those 1%.


Charge of the Light Brigade. Seven knights fight 3 queens, and usually win! (8x8, Cells: 64) [All Comments] [Add Comment or Rating]
💡📝H. G. Muller wrote on Sat, Oct 5 06:23 PM UTC in reply to NeodymiumPhyte from 06:05 PM:

I don't know if Fairy-Stockfish is any good at this? Does it include this as an officially supported, highly optimized variant, or is it something you configured yourself? I know that the ordinary Stockfish many years ago was terrible at this. I let it play against QueeNy (a derivative of the 2400 Elo engine Spartacus), and it got totally clobbered. Engines that do not know 2 Knights are far more valuable than a Queen will play like an idiot. You cannot expect engines that blunder away their Knights to have any success in playing with black. Can Fairy-Stockfish beat QueeNy?


Joker. Moves like last piece moved by the opponent.[All Comments] [Add Comment or Rating]
H. G. Muller wrote on Sun, Sep 29 01:17 PM UTC in reply to HaruN Y from 06:12 AM:

Not sure I have seen that poll.

But I would say that a mimic moves / promotes / does whatever as the rules of the variant it participates in says it does. It is not a standard piece. Usually mimicking is about moving, and things like promotions or royalty are not part of the move. Of course you could define a piece that mimics the promotion of the last-moved piece too. Or even only that, always keeping its own move, but allowed to promote on it (no matter where it goes) when the opponent promoted. Or even promote in its own prescribed way when the opponent promoted. The possibilities are endless. Of course promotion of a mimic would in general make it a non-mimic. (Unless a game has various types of mimics in it.)

A generalization of a mimic is a piece whose move and/or other properties depends in some way on the previous move of the opponent.


25 comments displayed

Later Reverse Order EarlierEarliest

Permalink to the exact comments currently displayed.