🕸📝Fergus Duniho wrote on Sat, Aug 22, 2020 01:49 AM UTC:
I have made a major update to movepiece.js. It can now highlight the proper spaces for the subsequent parts of multi-part moves. In general, players may click spaces in any order, and it will narrow down the legal moves to those that include all of the spaces clicked on. In the event that a shorter move is part of longer multi-part moves, or a multi-part move returns to its destination, clicking on a space a second time will indicate that this space must be the final destination of the move. Clicking on the same space twice will deselect a move only when it is the second click. To cancel a move beyond that point, you can click the Cancel button on the requester that lists multiple move options.
It now uses a single showLegal() function instead of the two functions showLegalTo() and showLegalFrom(). I will delay removing them until tommorow, since H.G. currently has code that is using them. One of the main differences from H.G.'s code is that it will not arbitrarily add "pass" to a move. It works with the legal moves provided to it in legalList, and it does not make any assumptions about there being other legal moves outside this list. Another difference is that it should handle multi-part moves with any number of different coordinates. H.G.'s code can handle multi-part moves with up to three different coordinates.
In the event that a third or later click results in no legal move, it will try to submit the move it has constructed. If this is an exact match for a legal move, it will automatically submit it. If it is not, it will ask the player if he wants to submit it. This allows a player in Fusion Chess who is prompted with both a standard move and a fission move, for example, to play the standard move by clicking the board again.
I have made a major update to movepiece.js. It can now highlight the proper spaces for the subsequent parts of multi-part moves. In general, players may click spaces in any order, and it will narrow down the legal moves to those that include all of the spaces clicked on. In the event that a shorter move is part of longer multi-part moves, or a multi-part move returns to its destination, clicking on a space a second time will indicate that this space must be the final destination of the move. Clicking on the same space twice will deselect a move only when it is the second click. To cancel a move beyond that point, you can click the Cancel button on the requester that lists multiple move options.
It now uses a single showLegal() function instead of the two functions showLegalTo() and showLegalFrom(). I will delay removing them until tommorow, since H.G. currently has code that is using them. One of the main differences from H.G.'s code is that it will not arbitrarily add "pass" to a move. It works with the legal moves provided to it in legalList, and it does not make any assumptions about there being other legal moves outside this list. Another difference is that it should handle multi-part moves with any number of different coordinates. H.G.'s code can handle multi-part moves with up to three different coordinates.
In the event that a third or later click results in no legal move, it will try to submit the move it has constructed. If this is an exact match for a legal move, it will automatically submit it. If it is not, it will ask the player if he wants to submit it. This allows a player in Fusion Chess who is prompted with both a standard move and a fission move, for example, to play the standard move by clicking the board again.