X-Git-Url: https://git.auder.net/assets/discord.svg?a=blobdiff_plain;ds=sidebyside;f=client%2Fsrc%2Fvariants%2FDynamo.js;h=57af913de9dc13863300d44f8c3b355ca8b20c22;hb=266fba4a233d57b79a31b56933333fd672ad0a9d;hp=afa9a88f51ba5035d37e21f3a1005e4d64f2c82b;hpb=f76dd684a2738f98092cd8770146885cd423d2a9;p=vchess.git diff --git a/client/src/variants/Dynamo.js b/client/src/variants/Dynamo.js index afa9a88f..57af913d 100644 --- a/client/src/variants/Dynamo.js +++ b/client/src/variants/Dynamo.js @@ -564,7 +564,6 @@ export class DynamoRules extends ChessRules { // Does m2 un-do m1 ? (to disallow undoing actions) oppositeMoves(m1, m2) { const isEqual = (av1, av2) => { - // Precondition: av1 and av2 length = 2 for (let av of av1) { const avInAv2 = av2.find(elt => { return ( @@ -578,11 +577,12 @@ export class DynamoRules extends ChessRules { } return true; }; + // All appear and vanish arrays must have the same length + const mL = m1.appear.length; return ( - m1.appear.length == 2 && - m2.appear.length == 2 && - m1.vanish.length == 2 && - m2.vanish.length == 2 && + m2.appear.length == mL && + m1.vanish.length == mL && + m2.vanish.length == mL && isEqual(m1.appear, m2.vanish) && isEqual(m1.vanish, m2.appear) );