| 1 | const variants = [ |
| 2 | {name: 'Absorption', desc: 'Absorb powers'}, |
| 3 | {name: 'Alapo', desc: 'Geometric Chess'}, |
| 4 | {name: 'Alice', desc: 'Both sides of the mirror'}, |
| 5 | {name: 'Align4', desc: 'Align four pawns'}, |
| 6 | {name: 'Allmate', desc: 'Mate any piece'}, |
| 7 | {name: 'Ambiguous', desc: "Play opponent's pieces"}, |
| 8 | {name: 'Antiking1', desc: 'Keep antiking in check', disp: 'Anti-King I'}, |
| 9 | {name: 'Antiking2', desc: 'Keep antiking in check', disp: 'Anti-King II'}, |
| 10 | {name: 'Antimatter', desc: 'Dangerous collisions'}, |
| 11 | {name: 'Apocalypse', desc: 'The end of the world'}, |
| 12 | {name: 'Arena', desc: 'Middle battle'}, |
| 13 | {name: 'Atarigo', desc: 'First capture wins', disp: 'Atari-Go'}, |
| 14 | {name: 'Atomic', desc: 'Explosive captures'}, |
| 15 | {name: 'Avalam', desc: 'Build towers'}, |
| 16 | {name: 'Avalanche', desc: 'Pawnfalls'}, |
| 17 | {name: 'Balaklava', desc: 'Meet the Mammoth'}, |
| 18 | {name: 'Bario', desc: 'A quantum story'}, |
| 19 | {name: "Balanced", desc: "balanced chess"}, |
| 20 | {name: 'Baroque', desc: 'Exotic captures'}, |
| 21 | {name: "Benedict", desc: "Change colors"}, |
| 22 | {name: 'Berolina', desc: 'Pawns move diagonally'}, |
| 23 | {name: 'Bicolour', desc: 'Harassed kings'}, |
| 24 | {name: 'Brotherhood', desc: 'Friendly pieces'}, |
| 25 | {name: 'Cannibal', desc: 'Capture powers'}, |
| 26 | {name: 'Capablanca', desc: 'Capablanca Chess', disp: 'Capablanca'}, |
| 27 | {name: 'Capture', desc: 'Mandatory captures'}, |
| 28 | {name: 'Chakart', desc: 'Capture the princess'}, |
| 29 | // {name: 'Checkered', desc: 'Shared pieces'}, |
| 30 | // {name: 'Checkless', desc: 'No-check mode'}, |
| 31 | {name: 'Chess960', disp: "Chess 960", desc: "Standard rules"}, |
| 32 | // {name: 'Circular', desc: 'Run forward'}, |
| 33 | // {name: 'Clorange', desc: 'A Clockwork Orange', disp: 'Clockwork Orange'}, |
| 34 | // {name: 'Convert', desc: 'Convert enemy pieces'}, |
| 35 | // {name: 'Copycat', desc: 'Borrow powers'}, |
| 36 | // {name: 'Coregal', desc: 'Two royal pieces'}, |
| 37 | // {name: 'Coronation', desc: 'Long live the Queen'}, |
| 38 | {name: 'Crazyhouse', desc: 'Captures reborn'}, |
| 39 | // {name: 'Crossing', desc: 'Cross the river'}, |
| 40 | {name: 'Cylinder', desc: 'Neverending rows'}, |
| 41 | // {name: 'Cwda', desc: 'New teams', disp: 'Different armies'}, |
| 42 | {name: 'Dark', desc: 'In the shadow'}, |
| 43 | // {name: 'Diamond', desc: 'Rotating board'}, |
| 44 | // {name: 'Dice', desc: 'Roll the dice'}, |
| 45 | // {name: 'Discoduel', desc: 'Enter the disco', disp: 'Disco Duel'}, |
| 46 | // {name: 'Dobutsu', desc: "Let's catch the Lion!"}, |
| 47 | // {name: 'Doublearmy', desc: '64 pieces on the board', disp: 'Double Army'}, |
| 48 | {name: 'Doublemove', desc: 'Double moves'}, |
| 49 | // {name: 'Dynamo', desc: 'Push and pull'}, |
| 50 | // {name: 'Eightpieces', desc: 'Each piece is unique', disp: '8 Pieces'}, |
| 51 | // {name: 'Emergo', desc: 'Stacking Checkers variant'}, |
| 52 | // {name: 'Empire', desc: 'Empire versus Kingdom'}, |
| 53 | // {name: 'Enpassant', desc: 'Capture en passant', disp: 'En-passant'}, |
| 54 | // {name: 'Evolution', desc: 'Faster development'}, |
| 55 | // {name: 'Extinction', desc: 'Capture all of a kind'}, |
| 56 | // {name: 'Fanorona', desc: 'Malagasy Draughts'}, |
| 57 | // {name: 'Football', desc: 'Score a goal'}, |
| 58 | // {name: 'Forward', desc: 'Moving forward'}, |
| 59 | // {name: 'Freecapture', desc: 'Capture both colors', disp: 'Free Capture'}, |
| 60 | // {name: 'Fugue', desc: 'Baroque Music'}, |
| 61 | // {name: 'Fullcavalry', desc: 'Lancers everywhere', disp: 'Full Cavalry'}, |
| 62 | // {name: 'Fusion', desc: 'Fusion pieces (v1)'}, |
| 63 | {name: 'Giveaway', desc: 'Lose all pieces'}, |
| 64 | // {name: 'Gomoku', desc: 'Align five stones'}, |
| 65 | // {name: 'Grand', desc: 'Big board'}, |
| 66 | // {name: 'Grasshopper', desc: 'Long jumps over pieces'}, |
| 67 | // {name: 'Gridolina', desc: 'Jump the borders'}, |
| 68 | // {name: 'Hamilton', desc: 'Walk on a graph'}, |
| 69 | {name: 'Hex', desc: 'Connect sides'}, |
| 70 | // {name: 'Hidden', desc: 'Unidentified pieces', disp: 'Strate-Go'}, |
| 71 | // {name: 'Hiddenqueen', desc: 'Queen disguised as a pawn', disp: 'Hidden Queen'}, |
| 72 | // {name: 'Hoppelpoppel', desc: 'Knibis and Bisknis', disp: 'Hoppel-Poppel'}, |
| 73 | // {name: 'Horde', desc: 'A pawns cloud'}, |
| 74 | // {name: 'Hypnotic', desc: 'Mind control (v1)'}, |
| 75 | // {name: 'Iceage', desc: 'Ice Age is coming!', disp: 'Ice Age'}, |
| 76 | // {name: 'Interweave', desc: 'Interweaved colorbound teams'}, |
| 77 | // {name: 'Isardam', desc: 'No paralyzed pieces'}, |
| 78 | // {name: 'Janggi', desc: 'Korean Chess'}, |
| 79 | // {name: 'Joker', desc: 'Replace pieces'}, |
| 80 | // {name: 'Karouk', desc: 'Thai Chess (v3)', disp: 'Kar-Ouk'}, |
| 81 | // {name: 'Kinglet', desc: 'Protect your pawns'}, |
| 82 | // {name: 'Kingsmaker', desc: 'Promote into kings'}, |
| 83 | // {name: 'Knightmate', desc: 'Mate the knight'}, |
| 84 | // {name: 'Knightrelay', desc: 'Move like a knight'}, |
| 85 | // {name: 'Konane', desc: 'Hawaiian Checkers'}, |
| 86 | // {name: 'Koopa', desc: 'Stun & kick pieces'}, |
| 87 | // {name: 'Koth', desc: 'King of the Hill', disp:'King of the Hill'}, |
| 88 | // {name: 'Madhouse', desc: 'Rearrange enemy pieces'}, |
| 89 | {name: 'Madrasi', desc: 'Paralyzed pieces'}, |
| 90 | // {name: 'Magnetic', desc: 'Laws of attraction'}, |
| 91 | // {name: 'Maharajah', desc: 'Augmented Queens'}, |
| 92 | // {name: 'Makpong', desc: 'Thai Chess (v2)'}, |
| 93 | // {name: 'Makruk', desc: 'Thai Chess (v1)'}, |
| 94 | // {name: 'Maxima', desc: 'Occupy the enemy palace'}, |
| 95 | // {name: 'Mesmer', desc: 'Mind control (v2)'}, |
| 96 | // {name: 'Minishogi', desc: 'Shogi 5 x 5'}, |
| 97 | // {name: 'Minixiangqi', desc: 'Xiangqi 7 x 7'}, |
| 98 | // {name: 'Monocolor', desc: 'All of the same color'}, |
| 99 | // {name: 'Monster', desc: 'White move twice'}, |
| 100 | // {name: 'Musketeer', desc: 'New fairy pieces'}, |
| 101 | // {name: 'Newzealand', desc: 'Kniros and Rosknis', disp: 'New-Zealand'}, |
| 102 | // {name: 'Omega', desc: 'A wizard in the corner'}, |
| 103 | // {name: 'Orda', desc: 'Mongolian Horde (v1)'}, |
| 104 | // {name: 'Ordamirror', desc: 'Mongolian Horde (v2)', disp: 'Orda Mirror'}, |
| 105 | // {name: 'Otage', desc: 'Capture and release hostages'}, |
| 106 | // {name: 'Pacifist', desc: 'Convert & support'}, |
| 107 | // {name: 'Pacosako', desc: 'Dance with the King', disp: 'Paco-Sako'}, |
| 108 | // {name: 'Pandemonium', desc: 'Noise and confusion'}, |
| 109 | // {name: 'Parachute', desc: 'Landing on the board'}, |
| 110 | // {name: 'Pawnmassacre', desc: 'Pieces upside down', disp: 'Pawn Massacre'}, |
| 111 | // {name: 'Pawns', desc: 'Reach the last rank (v1)'}, |
| 112 | // {name: 'Pawnsking', desc: 'Reach the last rank (v2)', disp: 'Pawns & King'}, |
| 113 | // {name: 'Perfect', desc: 'Powerful pieces'}, |
| 114 | // {name: 'Pocketknight', desc: 'Knight in pocket', disp: 'Pocket Knight'}, |
| 115 | {name: 'Progressive', desc: 'Play more and more moves'}, |
| 116 | // {name: 'Racingkings', desc: 'Kings cross the 8x8 board', disp: 'Racing Kings'}, |
| 117 | // {name: 'Rampage', desc: 'Move under cover'}, |
| 118 | // {name: 'Relayup', desc: 'Upgrade pieces', disp: 'Relay-up'}, |
| 119 | {name: 'Rifle', desc: 'Shoot pieces'}, |
| 120 | {name: 'Recycle', desc: 'Reuse pieces'}, |
| 121 | {name: 'Refusal', desc: 'Do not play that!'}, |
| 122 | // {name: 'Rollerball', desc: 'As in the movie'}, |
| 123 | // {name: 'Rococo', desc: 'Capture on the edge'}, |
| 124 | // {name: 'Royalrace', desc: 'Kings cross the 11x11 board', disp: 'Royal Race'}, |
| 125 | // {name: 'Rugby', desc: 'Transform an essay'}, |
| 126 | // {name: 'Schess', desc: 'Seirawan-Harper Chess', disp: 'S-Chess'}, |
| 127 | // {name: 'Screen', desc: 'Free initial setup'}, |
| 128 | // {name: 'Selfabsorb', desc: 'Fusion pieces (v2)', disp: 'Self-Absorption'}, |
| 129 | // {name: 'Shako', desc: 'Non-conformism and utopia'}, |
| 130 | // {name: 'Shatranj', desc: 'Ancient rules'}, |
| 131 | // {name: 'Shinobi', desc: 'A story of invasion'}, |
| 132 | // {name: 'Shogi', desc: 'Japanese Chess'}, |
| 133 | // {name: 'Shogun', desc: "General's Chess"}, |
| 134 | // {name: 'Sittuyin', desc: 'Burmese Chess'}, |
| 135 | // {name: 'Spartan', desc: 'Spartan versus Persians'}, |
| 136 | // {name: 'Squatter', desc: 'Squat last rank'}, |
| 137 | // {name: 'Stealthbomb', desc: 'Beware the bomb'}, |
| 138 | {name: 'Suction', desc: 'Attract opposite king'}, |
| 139 | // {name: 'Swap', desc: 'Dangerous captures'}, |
| 140 | // {name: 'Switching', desc: "Exchange pieces' positions"}, |
| 141 | // {name: 'Synchrone', desc: 'Play at the same time'}, |
| 142 | // {name: 'Synochess', desc: 'Dynasty versus Kingdom'}, |
| 143 | // {name: 'Takenmake', desc: 'Prolongated captures', disp: 'Take and make'}, |
| 144 | {name: 'Teleport', desc: 'Reposition pieces'}, |
| 145 | // {name: 'Tencubed', desc: 'Four new pieces'}, |
| 146 | // {name: 'Threechecks', desc: 'Give three checks', disp: 'Three Checks'}, |
| 147 | // {name: 'Titan', desc: 'Extra bishops and knights'}, |
| 148 | // {name: 'Twokings', desc: 'Two kings', disp: 'Two Kings'}, |
| 149 | // {name: 'Upsidedown', desc: 'Board upside down', disp: 'Upside-down'}, |
| 150 | // {name: 'Vchess', desc: 'Pawns capture backward', disp: 'Victor Chess'}, |
| 151 | {name: 'Weiqi', desc: 'Surround territory'}, |
| 152 | // {name: 'Wildebeest', desc: 'Balanced sliders & leapers'}, |
| 153 | // {name: 'Wormhole', desc: 'Squares disappear'}, |
| 154 | // {name: 'Xiangqi', desc: 'Chinese Chess'}, |
| 155 | // {name: 'Yote', desc: 'African Draughts'}, |
| 156 | {name: "Zen", desc: "Reverse captures"} |
| 157 | ]; |
| 158 | |
| 159 | // Next line for usage on server (Node.js) |
| 160 | if (typeof window === 'undefined') module.exports = variants; |