X-Git-Url: https://git.auder.net/?a=blobdiff_plain;f=variants%2FAntiking2%2Fclass.js;fp=variants%2FAntiking2%2Fclass.js;h=0e6a3e567ae212a6f2e9d86b85caf0e6275ea91a;hb=a548cb4e3ad8099e977da9bb4a4184973beb56e3;hp=0000000000000000000000000000000000000000;hpb=b2fc1259220619ab828a5da79cbbc8894ac5d296;p=xogo.git diff --git a/variants/Antiking2/class.js b/variants/Antiking2/class.js new file mode 100644 index 0000000..0e6a3e5 --- /dev/null +++ b/variants/Antiking2/class.js @@ -0,0 +1,33 @@ +import ChessRules from "/base_rules.js"; +import AbstractAntikingRules from "/variants/AbstractAntiking.js"; +import { Random } from "/utils/alea.js"; + +export class Antiking2Rules extends AbstractAntikingRules { + + static get Aliases() { + return Object.assign({'A': AbstractAntikingRules}, ChessRules.Aliases); + } + + static get Options() { + return { + styles: A.Options.styles.concat("cylinder") + }; + } + + genRandInitFen(seed) { + const baseFen = super.genRandInitFen(seed); + // Just add an antiking on 3rd ranks + let akPos = [3, 3]; + if (this.options.randomness >= 1) { + akPos[0] = Random.randInt(this.size.y); + if (this.options.randomness == 2) + akPos[1] = Random.randInt(this.size.y); + else + akPos[1] = akPos[0]; + } + const whiteLine = (akPos[0] > 0 ? akPos[0] : "") + 'A' + (akPos < this.size.y - 1 ? ...); + const blackLine = ... + return baseFen.replace(...) + } + +};