[ 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 ]Latest Ratings and CommentsLater ⇩Reverse Order⇧ Earlier⇩ Earliest⇧ Fibnif. Moves one diagonally or makes a forwards or backwards knight jump.[All Comments] [Add Comment or Rating]Kevin Pacey wrote on 2019-11-17 UTCDoes anyone know if 2 fibnifs can force mate against a lone K, say on 10x8 or 12x8 rectangular boards? While I'm at it, a bigger challenge might be the off-topic question: Can 2 compound pieces force mate vs. a lone K on 12x8, if they are both a lame knight (that is, a Chinese Chess horse) plus wazir movement compound piece? Something amiss with What's New page?[Subject Thread] [Add Response]Kevin Pacey wrote on 2019-11-17 UTCAt the moment I cannot see any newly approved submissions between 0 and 60 days old displayed on the What's New page (as accessed from the CVP home page). Game Courier Tournament 2019. Chess Variant Tournament to be played on Game Courier.[All Comments] [Add Comment or Rating]Fergus Duniho wrote on 2019-11-17 UTCThese look like they will work, but they could be optimized better. They repeat the same operations multiple times, and they don't evaluate the most common type of move first. Also, the first or in each, which is the one to be evaluated last, is unnecessary. Greg Strong wrote on 2019-11-17 UTCGot it! def B or alltrue checkride #0 #1 1 1 !== #0 c1 !== #0 g1 or alltrue checkride #0 #1 1 1 == #0 c1 not flag wcmustconvert or alltrue checkleap #0 #1 1 0 == #0 c1 flag wccanconvert or alltrue checkride #0 #1 1 1 == #0 g1 not flag wgmustconvert or alltrue checkleap #0 #1 1 0 == #0 g1 flag wgcanconvert; def b or alltrue checkride #0 #1 1 1 !== #0 c8 !== #0 g8 or alltrue checkride #0 #1 1 1 == #0 c8 not flag bcmustconvert or alltrue checkleap #0 #1 1 0 == #0 c8 flag bccanconvert or alltrue checkride #0 #1 1 1 == #0 g8 not flag bgmustconvert or alltrue checkleap #0 #1 1 0 == #0 g8 flag bgcanconvert; I'll give the whole thing another lookover in the morning to hopefully make sure I didn't miss anything but I think everything is set. Greg Strong wrote on 2019-11-17 UTCThanks, Fergus. Unless I'm missing something, it seems my B subroutine already has all the logic. Is there some reason I can't delegate def B to gosub B? Seems odd I should need to describe all the same logic again but in a different way. Fergus Duniho wrote on 2019-11-17 UTC I don't know exactly what the issue is (and there could be more than one) but part of it seems to revolve around the fact that the rules for Bishop moves are complicated, and I've codified them nicely in subroutines "B" and "b", but the architecture seems to want the 1-line fn defs, which don't seem to support if-then-else, and my attempts to have a def B pass off to a gosub B doesn't seem to work either. I tried out your Symmetric Chess preset. The conversion rule seems to be enforced correctly, but conversion moves are not displaying as legal moves, and when a Bishop must convert, it is incorrectly displaying illegal moves as legal. As you correctly surmise, this is because you do not have the b and B functions defined. While functions do not support if-then-else, as such, they do support cond, which works like the ? and : operators. They can also use and, or, nand, nor, onlyif, and unless. You can look at the functions for other divergent pieces, such as the Pawn or the Cannon, for examples of how to handle this. Here are some examples from chess3. If you understand the logic behind these, you should be able to figure out how to handle the Bishops conversion rule. def C cond cond empty #0 capture (not empty #1) (checkhop #0 #1 0 1) (checkride #0 #1 0 1) and #1; def P remove var ep and < rankname #1 var bpr and < rankname var ep rankname #1 and == filename var ep filename #1 and checkleap #0 #1 1 1 or and checkride #0 #1 0 1 == rankname #0 var wpr or checkleap #0 #1 0 1 and empty #1 or and islower space #1 checkleap #0 #1 1 1 and <= distance #0 #1 var fps and > rank #1 rank #0; Remember that Game Courier evaluates functions from right to left, and many of the logical operators will work with either one or two operands. In the Pawn example, the logical operators are normally taking only one operand. When and receives a lone true value, it lets the function continue silently, but if it receives a false value, it returns a false value and exits. When or receives a lone false value, it lets the function continue silently, but if it receives a true value, it returns a true value and exits. If you still need more help, just ask. Greg Strong wrote on 2019-11-17 UTCWell, I don't know. I thought I was getting there but apparently not. Nothing behaves the way I expect and after about 8 hours of screwing around I've reached my limit. I don't know exactly what the issue is (and there could be more than one) but part of it seems to revolve around the fact that the rules for Bishop moves are complicated, and I've codified them nicely in subroutines "B" and "b", but the architecture seems to want the 1-line fn defs, which don't seem to support if-then-else, and my attempts to have a def B pass off to a gosub B doesn't seem to work either. If anyone else wants to look, feel free. Boiled down, the Bishop Conversion Rule really isn't that hard. I'm tracking things with 8 flags: wccanconvert wgcanconvert bccanconvert bgcanconvert wcmustconvert wgmustconvert bcmustconvert bgmustconvert The first letter, w or b, indicates the player. The second letter, c or g, indicates the start file of the bishop. Then there are flags for can convert (which begin the game set) and flags for must convert (which are not set until the other bishop moves without converting.) Marseillais Chess. Move twice per turn. (8x8, Cells: 64) (Recognized!)[All Comments] [Add Comment or Rating]Fergus Duniho wrote on 2019-11-16 UTCSince you brought up the rule in Shogi against checkmating a King in Shogi with a Pawn drop, I checked how I handled it in Game Courier. I handled it similarly. After checking for checkmate in the Post-Game code, my code checks whether the checkmate was due to a Pawn drop, and if it was, it reports an illegal move instead of concluding the game. Caïssa Britannia. British themed variant with Lions, Unicorns, Dragons, Anglican Bishops, and a royal Queen. (10x10, Cells: 100) [All Comments] [Add Comment or Rating]Fergus Duniho wrote on 2019-11-16 UTCDone, and I moved the ASCII diagram to the ALT text of the image. Marseillais Chess. Move twice per turn. (8x8, Cells: 64) (Recognized!)[All Comments] [Add Comment or Rating]H. G. Muller wrote on 2019-11-16 UTCBut then I am not so happy that this requires an alteration of the normal (full-turn) FENs, which would require w2 and b2 stm field in your proposal. I would much rather have it that the exceptional partial-turn FENs would require something special. As the full-move counter is actually completely useless, and in balanced Marseillais the first turn is special in that it only allows a single move, recognizing half-turn FENs by artificially setting their move count to 1 would be OK with me. The WinBoard Alien Edition would not consider positions half-way a turn not as game positions; when you step through the game later it would always alternate player between two turns, and show the effect of the pair of moves (like it was dealing with castling). Animation of the move might tell you the order. As to the legality issue: I took the pragmatic approach in my Shogi engines as well as WinBoard: I do not consider Pawn-drop mates illegal, just losing. If checkmate is detected, its scoring depends on whether the previous move was a Pawn drop or not. So even without engine WinBoard allows the user to enter the Pawn drop, which then will end the game for him as a loss. For Shogi this is of course entirely justifiable. But it would not disturb me if Marseillais was treated the same; if we thing it should not be allowed to stalemate yourself after the first turn, just detect the stalemate and declare it a loss if the user elects to play into it. Game Courier Tournament 2019. Chess Variant Tournament to be played on Game Courier.[All Comments] [Add Comment or Rating]Carlos Cetina wrote on 2019-11-16 UTCOkay, Greg, sorry for the misunderstanding. Thousand thanks and good luck! Marseillais Chess. Move twice per turn. (8x8, Cells: 64) (Recognized!)[All Comments] [Add Comment or Rating]Greg Strong wrote on 2019-11-16 UTCOk, I see. Yes, probably representing positions in the middle of turns would not be common. But since ChessV considers the legs to be different moves, I needed to do something. I don't want to break the property that everything has an FEN. Caïssa Britannia. British themed variant with Lions, Unicorns, Dragons, Anglican Bishops, and a royal Queen. (10x10, Cells: 100) [All Comments] [Add Comment or Rating]Greg Strong wrote on 2019-11-16 UTCThe graphic diagram on this page is very small for some reason. Don't think it was always that way. I will fix in a few days if Fergus doesn't. Game Courier Tournament 2019. Chess Variant Tournament to be played on Game Courier.[All Comments] [Add Comment or Rating]Greg Strong wrote on 2019-11-16 UTCHi Carlos, Sorry, I did not mean to convey that I was done. Only that I had made progress. I intend to work on fixing the legal moves display today. Caïssa Britannia. British themed variant with Lions, Unicorns, Dragons, Anglican Bishops, and a royal Queen. (10x10, Cells: 100) [All Comments] [Add Comment or Rating]Calvin Daniels wrote on 2019-11-16 UTCLove the rebuild of chess. It's less a variant and more a unique offering, like shogi as example. I'd say two things surprised me. In changing almost every piece on the board was there any thought of a different approach to the pawn? And, of more interest, doing something to save te knight from its 'pasted on feel', the only real disappointment with the game so far? It woul be rare that promotion to a knight would be a better option than a taken piece IMO so I doubt knights get much play. Perhaps making them a 'Veteran Knight' knight/camel combined move would help. Or, allowing promotion to a knight on 8 and 9 row, to anything captured in 10th. In that was a knight might be better option as it arrives to the fray earlier. Just a couple of thoughts. Game Courier Tournament 2019. Chess Variant Tournament to be played on Game Courier.[All Comments] [Add Comment or Rating]Carlos Cetina wrote on 2019-11-16 UTCGreg: I appreciate very much the effort you make to reinforce the rules of the Symmetric Chess preset, however I wonder if using the preset you suggest will not be more confusing for some people than if we used the entirely uncoded one. I don't know; it's just a presumption, a guess. In my personal case, I would play without problems with any of those two options. Certainly, coding the Bishops Conversion Rule is a tremendous challenge. Marseillais Chess. Move twice per turn. (8x8, Cells: 64) (Recognized!)[All Comments] [Add Comment or Rating]H. G. Muller wrote on 2019-11-16 UTCYes, FEN is very useful in general. What I was questioning is whether it would be useful to design special FEN conventions for representing game states halfway a turn. I have never seen an orthodox-Chess puzzle like "white mates in four after he has touched his Rook", or people pushing for a FEN field to indicate which piece has been touched. Or a Chu Shogi problem that said "white mates, now that he has captured a Gold something with the first leg of his Lion move. Neither can I imagine why you would want to load a position half-way a turn in a GUI or engine. More later Metamachy. Large game with a variety of regular fairy pieces.[All Comments] [Add Comment or Rating]J Andrew Lipscomb wrote on 2019-11-16 UTCThe term "royal" in this context specifically means the "capture/mate me to win" property. The term "prince" has been used both for pieces with the King-move but no such property (Tempête sur l'Échiquier comes to mind) and for pieces that serve as a backup royal (Chu Shogi, Tamerlane). Prince is a reasonable term for either, but the clarification is also reasonable. Game Courier Tournament 2019. Chess Variant Tournament to be played on Game Courier.[All Comments] [Add Comment or Rating]Greg Strong wrote on 2019-11-16 UTCOk, I think we'll be in business for a rule-enforcing preset for Symmetric. I made some real progress. The display of legal moves doesn't work yet (the legal move display makes it look like the bishop is a dragon horse), but it terms of what it actually allows, it looks like it is doing the right thing in all cases: /play/pbm/play.php?game%3DSymmetric+Chess%26settings%3Drules Game Courier. Missing description[All Comments] [Add Comment or Rating]Jean-Louis Cazaux wrote on 2019-11-15 UTCThis comment is for Metamachy: as its inventor, I regret that my choice of an Eagle is changed to a Gryphon. It is wrong to think that a Gryphon was present into the Grant Acedrex of King Alfonso X of Castile (1283). No, the piece was an Aanca. An Aanca was an Arab-inspired beast, a giant bird, like an eagle, able to capture and draw elephants in the air. The drawing on the original codex illustrates that. The fault is from the great chess historian HJR Murray who interpretated this Aanca as a Gryphon, another mythical animal. That being said, my choice of an Eagle is in my opinion a better choice for this modern game. The presence of both a Lion and an Eagle, the two most used symbolic animals in heraldry is important to my eyes. I wish you could respect my choice. I don't feel bounded to Murray's errors, despite I owe a great respect to his immense achievements in general. Thank you. Metamachy. Large game with a variety of regular fairy pieces.[All Comments] [Add Comment or Rating]Jean-Louis Cazaux wrote on 2019-11-15 UTCHello friends, Two things. I would like to know what was not clear in my description of metamachy? I could make corrections. Second, it is a bit severe against me as the inventor to write about the Prince "Despite what its name suggests, it has no royal properties". It moves like a King, I think this is a strong royal property. It can be checked, and this is logical, the capture of the Prince should not be the end. A Prince is not a King. Its name is well chosen or I miss something. Best regards Marseillais Chess. Move twice per turn. (8x8, Cells: 64) (Recognized!)[All Comments] [Add Comment or Rating]Greg Strong wrote on 2019-11-15 UTC About the FEN: is this really needed? Why would one ever want to have a FEN for a position after the first move? Really? FENs are useful. For example, the CECP setboard command. I think the fact that ChessV will give you the FEN for the current position or load a new position by FEN in any game to be a useful feature. [idea!] Why not use a fraction on the full-move counter if you want to do this? E.g. move 10.5 would mean after the first half of the 10th turn of the player on move I'm sorry, but I don’t like this at all. Instead of adjusting the side-to-move from “w2” to “w” and then to “b2”, you are going to go from “w” on move 10, to “w” but on move 10.5, and then to “b” and roll the move counter back to 10? That is not cleaner than my approach. And my approach is cleanly extensible to Progressive Chess It seems to me that a Marseillais Chess cannot be implemented without some dedicated code that would be useless in single-move variants. It is certainly true that allowing multi-move variants requires extra code. So the goal was to add this capability in a modular fashion that is not specific to Marseillais. ChessV has Rule objects which can be plugged in to enable various capabilities. To support this, I made a special type of Rule called a MoveCompletionRule which handles updating the side-to-move when moves are made or unmade. Every game must have exactly one of these. Unless you are playing a multi-move variant, you just leave the default in place which just oscillates between white and black. Other implementations can do more complex things. The MarseillaisMoveCompletionRule can be plugged into any game – add it to Capablanca Chess and you have Marseillais Capablanca with one line of code. It should be clear that you cannot judge the legality of a turn before you have seen the full turn Well, this is what we are discussing... I wish to avoid that complexity, which I consider unnecessary and possibly undesirable, at least for Marseillais. But you do have one excellent point, which is: Take the Shogi Pawn-drop-mate ban. Yeah. That’s a problem. I may not be able to avoid this issue long term since I deffinately want to be able to support Shogi. I think that rule did cross my mind previously and I immediately pushed it to the side so as not to give myself nightmares. Say, I wonder if Zillions can handle that rule? I bet it can’t. The other examples you give, like Paco Shako – are probably not going to happen – at least not unless other programmers start assisting me. ChessV is now up to 400 files of source code. It’s a ridiculously ambitious project for one guy in his spare time. Some things just aren’t going to happen. Unless I win the lottery. Or find a wealthy benefactor. The reason I mentioned QS was because I assumed this would be required to detect the fact that the previous ply exposed the King That’s not how I am handling it. One of the messages a Rule object can accept is MoveBeingMade – upon which it can update internal information (in the case of the castling rule or en passant rule), but it can also rule that the move is illegal. The Checkmate rule handles MoveBeingMade, checks to see if the king is attacked, and rules the move illegal if it is. And, determining if a square is attacked is also routed by message passing. Butterfly Chess includes a CaptureByAdvance rule which handles the Advancer’s capture ability. So the Checkmate rule handles MoveBeingMade, fires off IsSquareAttacked messages, which are picked up by the CaptureByAdvance rule. So Butterfly Chess has both capture-by-advance and check/checkmate/stalemate without either Rule object knowing anything about the other! Beyond that, support for Butterfly comes entirely from the scripting language - no C#, entirely plug-and-play. Computationally very inefficient, hence my lousy nodes-per-second, but that’s how ChessV is able to play such a wide variety of games and how I am able to add support for new games very quickly. H. G. Muller wrote on 2019-11-15 UTCFrench translation: Marseillais Chess is a chess variant where each player plays two successive moves. On top of the rules for the normal game, the players must honor the following rules: A player that is in check must evade the check on his first move. If a player checks a King with his first move, he loses the capability to play a second move. If, after having played his first move, a player finds himself in a position where it is impossible to play a legal move, this is considered a stalemate. En-passant capture should be performed with the first move, except when two e.p. captures are possible. In the latter case, the two e.p. captures can be made in each of the two moves. Pushing Pawns two spaces beyond their initial location cannot be considered a double move (two advances of one space). So the player can make his second move after that. H. G. Muller wrote on 2019-11-15 UTCAbout the FEN: is this really needed? Why would one ever want to have a FEN for a position after the first move? In orthodox Chess we also do not have a special form of the turn indicator for positions half-way a castling, where the King has already moved and the Rook is yet to move. Or in Chu Shogi, for after the Lion made the first leg of a locust capture. The exceptional case for the initial position can already be recognized from the full-move counter in the FEN. [idea!] Why not use a fraction on the full-move counter if you want to do this? E.g. move 10.5 would mean after the first half of the 10th turn of the player on move. As to legal move generation: It seems to me that a Marseillais Chess cannot be implemented without some dedicated code that would be useless in single-move variants. One task for this code would be to score a stalemate after the first move different from one before it, namely as an illegal position (whatever score you want to use for that) rather than a draw. A second task should be to treat first-moves that get such a score as illegal moves, i.e. ignore them, and correct the legal-move count that might have been made during move generation for it. This would need a 'delayed' mate detection to handle the case where this count hits zero because all 1-move-legal moves turn out to cause self-stalemate the player, aborting the node with a checkmated or a draw score depending on the in-check status. It should be clear that you cannot judge the legality of a turn before you have seen the full turn. So that would be 2 ply in Marseillais, and a progressive number of ply in Progressive. If you wouldn't try the last ply of the turn, you could never know if the turn can be legally completed. Unless of course the rules guarantee there always is a legal move irrespective of the position, e.g. because passing on the second turn is always allowed. If you do a full judgement on the legality of the position after the turn, one turn should be enough. The reason I mentioned QS was because I assumed this would be required to detect the fact that the previous ply exposed the King. The assumption was that the root node of QS would start generating moves, and detect that one of the moves captured the King before really searching any. And then abort with a very happy score. So it would always be a 1-node QS, or a dedicated King-capture test, if you want. Depending on the variant there could be simpler ways to detect King capture than generating all moves and see what they hit. E.g. making all possible retrograde captures from the King, and see if they hit an enemy that reciprocates one (sometimes referred to as the 'super-piece method'). Depending on the complexity of the moves in the variant the super-piece method might be cheap or very expensive. (E.g. bent sliders, Cannons or Fire Demons are a pain.) Just generating all prograde capture moves, which you must be able to do anyway, is always a sure method, though. How much extra you need compared to the turn you want to judge the legality of unavoidably depends on how complex the conditions for legality can be in the variant at hand. Take the Shogi Pawn-drop-mate ban. To detect it you must be able to see that that the Pawn drop checks (which is of course trivial), but that every conceivable reply move is illegal (exposes your King, or perhaps (worse) completes a perpetual checking cycle). So that is two turns plus a King capture test. But it can be worse. Imagine a variant where it is illegal (rather than just losing) to expose yourself to mate-in-1 (rather than just to King capture). To judge a move you then have to take into account all replies that check, and then all evasions to any of those, to see if these expose the King. That is 3 ply + 'QS' (or 2-ply + mate-test). Imagine a variant where it is illegal to check when you cannot continue checking until you checkmate. (Tsume Chess?) Far fetched? Take the chained release moves of Paco Shako, implemented as a multi-move turn. It is illegal to release a piece from an embrace (by jumping into it) if the released piece cannot find an empty square to go to, an enemy to enbrace, or trigger another legal release. You will have to verify that at least one chain of releases (no matter how long) exists that terminates. There is just no predicting how many ply it can take. Fergus Duniho wrote on 2019-11-15 UTCIs there any French speaker here who can provide an accurate English translation of this? Google translate is not good enough to make it clear. Les échecs marseillais sont une variante du jeu d'échecs où chaque joueur joue deux coups à la suite. En plus des règles du jeu normales, les joueurs doivent respecter les règles suivantes : Un joueur en situation d'échec doit parer l'échec au premier de ses deux coups. Si un joueur fait échec au roi au premier coup, il perd la faculté de jouer son deuxième coup. Si après avoir joué son premier coup, un joueur se trouve dans une situation où il lui est impossible de jouer un coup légal, il est déclaré pat. La prise en passant doit être effectuée au premier coup sauf si deux prises en passant sont possibles. Dans ce dernier cas, les deux prises en passant peuvent être effectuées à chacun des deux coups. L'avance de deux cases des pions depuis leur position initiale ne peut pas être considérée comme un coup double (avance de deux fois une case). Donc le joueur peut jouer ensuite son deuxième coup. 25 comments displayedLater ⇩Reverse Order⇧ Earlier⇩ Earliest⇧Permalink to the exact comments currently displayed.