dzura/www/js/game_config_const.js
2025-02-05 20:57:26 -08:00

611 lines
21 KiB
JavaScript

const CONFIG_PIECES_STANDARD = [
new GAME.GamePiece(
"Militia",
new GAME.PieceMovement()
.add(0)
.add(1)
.add(5),
new GAME.PieceMovement()
.add(0)
.add(1)
.add(2)
.add(3)
.add(4)
.add(5),
),
new GAME.GamePiece(
"Lance",
new GAME.PieceMovement()
.add_stride(0)
.add(1)
.add(3)
.add(5),
new GAME.PieceMovement()
.add(0)
.add_stride(1, 1)
.add_stride(2, 1)
.add(3)
.add_stride(4, 1)
.add_stride(5, 1),
),
new GAME.GamePiece(
"Knight",
new GAME.PieceMovement()
.add(6)
.add(8)
.add(9)
.add(11)
.add(13)
.add(14)
.add(16)
.add(17),
new GAME.PieceMovement()
.add(6)
.add(8)
.add(9)
.add(11)
.add(13)
.add(14)
.add(16)
.add(17)
.add_alt(1),
),
new GAME.GamePiece(
"Tower",
new GAME.PieceMovement()
.add(0)
.add(1)
.add(3)
.add(5)
.add(6)
.add(11),
new GAME.PieceMovement()
.add(0)
.add(1)
.add(2)
.add(3)
.add(4)
.add(5)
.add(6)
.add(8)
.add(9)
.add(11),
),
new GAME.GamePiece(
"Castle",
new GAME.PieceMovement()
.add(0)
.add(1)
.add(2)
.add(4)
.add(5)
.add(7)
.add(10),
new GAME.PieceMovement()
.add(0)
.add(1)
.add(2)
.add(3)
.add(4)
.add(5)
.add(7)
.add(10)
.add_alt(2),
),
new GAME.GamePiece(
"Dragon",
new GAME.PieceMovement()
.add_stride(6)
.add_stride(7)
.add_stride(8)
.add_stride(9)
.add_stride(10)
.add_stride(11),
new GAME.PieceMovement()
.add(0)
.add(1)
.add(2)
.add(3)
.add(4)
.add(5)
.add_stride(6)
.add_stride(7)
.add_stride(8)
.add_stride(9)
.add_stride(10)
.add_stride(11),
),
new GAME.GamePiece(
"Behemoth",
new GAME.PieceMovement()
.add_stride(0)
.add_stride(1)
.add_stride(2)
.add_stride(3)
.add_stride(4)
.add_stride(5),
new GAME.PieceMovement()
.add_stride(0)
.add_stride(1)
.add_stride(2)
.add_stride(3)
.add_stride(4)
.add_stride(5)
.add(12)
.add(13)
.add(14)
.add(15)
.add(16)
.add(17)
),
new GAME.GamePiece(
"Hearth",
new GAME.PieceMovement()
.add(0)
.add(1)
.add(2)
.add(3)
.add(4)
.add(5)
.add(7)
.add(10),
new GAME.PieceMovement()
.add(0)
.add(1)
.add(2)
.add(3)
.add(4)
.add(5)
.add(7)
.add(10),
),
];
const CONFIG_LAYOUT_STANDARD = new GameConfig.Layout()
.add_piece(0, 0, false, new MATH.Vec2(0, 1))
.add_piece(0, 0, false, new MATH.Vec2(1, 1))
.add_piece(0, 0, false, new MATH.Vec2(2, 2))
.add_piece(0, 0, false, new MATH.Vec2(3, 2))
.add_piece(0, 0, false, new MATH.Vec2(4, 3))
.add_piece(0, 0, false, new MATH.Vec2(5, 3))
.add_piece(0, 0, false, new MATH.Vec2(6, 4))
.add_piece(0, 0, false, new MATH.Vec2(7, 4))
.add_piece(0, 0, false, new MATH.Vec2(8, 5))
.add_piece(1, 0, false, new MATH.Vec2(0, 0))
.add_piece(1, 0, false, new MATH.Vec2(8, 4))
.add_piece(2, 0, false, new MATH.Vec2(1, 0))
.add_piece(2, 0, false, new MATH.Vec2(7, 3))
.add_piece(3, 0, false, new MATH.Vec2(3, 0))
.add_piece(3, 0, false, new MATH.Vec2(5, 1))
.add_piece(4, 0, false, new MATH.Vec2(2, 0))
.add_piece(4, 0, false, new MATH.Vec2(6, 2))
.add_piece(5, 0, false, new MATH.Vec2(4, 2))
.add_piece(6, 0, false, new MATH.Vec2(4, 1))
.add_piece(7, 0, false, new MATH.Vec2(4, 0))
.mirror(1);
const CONFIG_POOL_DEMO = new Uint8Array([9, 4, 4, 4, 4, 2, 2, 9, 4, 4, 4, 4, 2, 2]);
const CONFIG_POOL_NONE = new Uint8Array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]);
const GAME_CONFIGS = {
// Standard
Standard: new GameConfig()
.set_pieces(CONFIG_PIECES_STANDARD)
.set_layout(CONFIG_LAYOUT_STANDARD),
// Militia
Guide_Militia: new GameConfig()
.set_pieces(CONFIG_PIECES_STANDARD)
.set_pool(CONFIG_POOL_DEMO)
.set_layout(
new GameConfig.Layout()
.add_piece(0, 0, false, new MATH.Vec2(4, 3))
.add_piece(0, 0, true, new MATH.Vec2(4, 5))
)
.set_rule("turn", false),
// Lance
Guide_Lance: new GameConfig()
.set_pieces(CONFIG_PIECES_STANDARD)
.set_pool(CONFIG_POOL_DEMO)
.set_layout(
new GameConfig.Layout()
.add_piece(1, 0, false, new MATH.Vec2(4, 3))
.add_piece(1, 0, true, new MATH.Vec2(4, 5))
)
.set_rule("turn", false),
// Knight
Guide_Knight: new GameConfig()
.set_pieces(CONFIG_PIECES_STANDARD)
.set_pool(CONFIG_POOL_DEMO)
.set_layout(
new GameConfig.Layout()
.add_piece(2, 0, false, new MATH.Vec2(3, 3))
.add_piece(2, 0, true, new MATH.Vec2(5, 5))
)
.set_rule("turn", false),
// Tower
Guide_Tower: new GameConfig()
.set_pieces(CONFIG_PIECES_STANDARD)
.set_pool(CONFIG_POOL_DEMO)
.set_layout(
new GameConfig.Layout()
.add_piece(3, 0, false, new MATH.Vec2(4, 3))
.add_piece(3, 0, true, new MATH.Vec2(4, 5))
)
.set_rule("turn", false),
// Castle
Guide_Castle: new GameConfig()
.set_pieces(CONFIG_PIECES_STANDARD)
.set_pool(CONFIG_POOL_DEMO)
.set_layout(
new GameConfig.Layout()
.add_piece(4, 0, false, new MATH.Vec2(4, 3))
.add_piece(4, 0, true, new MATH.Vec2(4, 5))
)
.set_rule("turn", false),
// Dragon
Guide_Dragon: new GameConfig()
.set_pieces(CONFIG_PIECES_STANDARD)
.set_pool(CONFIG_POOL_DEMO)
.set_layout(
new GameConfig.Layout()
.add_piece(5, 0, false, new MATH.Vec2(4, 3))
.add_piece(5, 0, true, new MATH.Vec2(4, 5))
)
.set_rule("turn", false),
// Behemoth
Guide_Behemoth: new GameConfig()
.set_pieces(CONFIG_PIECES_STANDARD)
.set_pool(CONFIG_POOL_DEMO)
.set_layout(
new GameConfig.Layout()
.add_piece(6, 0, false, new MATH.Vec2(4, 3))
.add_piece(6, 0, true, new MATH.Vec2(4, 5))
.add_piece(2, 0, false, new MATH.Vec2(5, 6))
.add_piece(2, 0, false, new MATH.Vec2(5, 3))
)
.set_rule("turn", false),
// Heart
Guide_Heart: new GameConfig()
.set_pieces(CONFIG_PIECES_STANDARD)
.set_pool(CONFIG_POOL_DEMO)
.set_layout(
new GameConfig.Layout()
.add_piece(7, 0, false, new MATH.Vec2(4, 3))
.add_piece(7, 1, true, new MATH.Vec2(3, 4))
.add_piece(1, 1, false, new MATH.Vec2(5, 6))
)
.set_rule("turn", false),
// Drop
Guide_Drop: new GameConfig()
.set_pieces(CONFIG_PIECES_STANDARD)
.set_pool(new Uint8Array([5, 1, 1, 2, 2, 1, 1, 6, 2, 2, 1, 1, 1, 1]))
.set_layout(
new GameConfig.Layout()
.add_piece(7, 0, false, new MATH.Vec2(6, 3))
.add_piece(0, 0, false, new MATH.Vec2(5, 4))
.add_piece(0, 0, false, new MATH.Vec2(6, 5))
.add_piece(0, 0, true, new MATH.Vec2(7, 7))
.add_piece(1, 0, false, new MATH.Vec2(8, 5))
.add_piece(0, 0, false, new MATH.Vec2(2, 2))
.add_piece(0, 1, false, new MATH.Vec2(2, 1))
.add_piece(3, 1, false, new MATH.Vec2(3, 2))
.add_piece(2, 0, false, new MATH.Vec2(3, 4))
.add_piece(0, 1, false, new MATH.Vec2(8, 7))
.add_piece(7, 1, false, new MATH.Vec2(4, 7))
.add_piece(4, 1, false, new MATH.Vec2(1, 4))
.add_piece(0, 1, false, new MATH.Vec2(0, 4))
)
.set_rule("turn", false),
// Promote
Guide_Promote: new GameConfig()
.set_pieces(CONFIG_PIECES_STANDARD)
.set_layout(
new GameConfig.Layout()
.add_piece(1, 0, false, new MATH.Vec2(0, 0))
.add_piece(1, 0, false, new MATH.Vec2(8, 4))
.add_piece(1, 1, false, new MATH.Vec2(0, 4))
.add_piece(1, 1, false, new MATH.Vec2(8, 8))
.add_piece(0, 1, false, new MATH.Vec2(8, 7))
.add_piece(0, 1, false, new MATH.Vec2(7, 7))
.add_piece(4, 1, false, new MATH.Vec2(2, 6))
.add_piece(5, 0, false, new MATH.Vec2(4, 2))
.add_piece(6, 0, false, new MATH.Vec2(4, 4))
.add_piece(4, 0, false, new MATH.Vec2(6, 7))
.add_piece(3, 0, false, new MATH.Vec2(5, 6))
.add_piece(2, 1, false, new MATH.Vec2(6, 3))
.add_piece(0, 1, false, new MATH.Vec2(3, 1))
)
.set_rule("turn", false),
// Check
Guide_Check: new GameConfig()
.set_pieces(CONFIG_PIECES_STANDARD)
.set_layout(
new GameConfig.Layout()
.add_piece(7, 0, false, new MATH.Vec2(4, 3))
.add_piece(4, 0, false, new MATH.Vec2(2, 3))
.add_piece(5, 0, false, new MATH.Vec2(5, 4))
.add_piece(0, 1, false, new MATH.Vec2(4, 4))
.add_piece(2, 1, false, new MATH.Vec2(5, 6))
),
Guide_Check2: new GameConfig()
.set_pieces(CONFIG_PIECES_STANDARD)
.set_pool(new Uint8Array([1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]))
.set_layout(
new GameConfig.Layout()
.add_piece(7, 0, false, new MATH.Vec2(4, 0))
.add_piece(3, 0, false, new MATH.Vec2(3, 0))
.add_piece(3, 0, false, new MATH.Vec2(5, 1))
.add_piece(1, 1, false, new MATH.Vec2(4, 4))
.add_piece(6, 1, true, new MATH.Vec2(7, 3))
.add_piece(1, 1, true, new MATH.Vec2(2, 0))
),
Guide_Check3: new GameConfig()
.set_pieces(CONFIG_PIECES_STANDARD)
.set_pool(new Uint8Array([1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]))
.set_layout(
new GameConfig.Layout()
.add_piece(7, 0, false, new MATH.Vec2(4, 2))
.add_piece(4, 0, false, new MATH.Vec2(6, 3))
.add_piece(3, 1, false, new MATH.Vec2(2, 2))
.add_piece(5, 1, false, new MATH.Vec2(1, 4))
.add_piece(1, 1, false, new MATH.Vec2(5, 5))
.add_piece(6, 1, true, new MATH.Vec2(4, 4))
),
Guide_Check4: new GameConfig()
.set_pieces(CONFIG_PIECES_STANDARD)
.set_pool(new Uint8Array([1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]))
.set_layout(
new GameConfig.Layout()
.add_piece(7, 0, true, new MATH.Vec2(4, 0))
.add_piece(0, 0, false, new MATH.Vec2(7, 4))
.add_piece(5, 1, true, new MATH.Vec2(3, 1))
.add_piece(6, 1, true, new MATH.Vec2(5, 3))
),
// Checkmate
Guide_Checkmate: new GameConfig()
.set_pieces(CONFIG_PIECES_STANDARD)
.set_pool(new Uint8Array([4, 1, 0, 2, 0, 0, 1, 9, 1, 0, 0, 2, 0, 0]))
.set_layout(
new GameConfig.Layout()
.add_piece(7, 1, false, new MATH.Vec2(0, 4))
.add_piece(2, 1, false, new MATH.Vec2(1, 5))
.add_piece(5, 0, true, new MATH.Vec2(1, 3))
)
.set_rule("reverse", true),
// Trials
Guide_Trial: [
new GameConfig()
.set_pieces(CONFIG_PIECES_STANDARD)
.set_pool(CONFIG_POOL_NONE)
.set_layout(
new GameConfig.Layout()
.add_piece(7, 1, false, new MATH.Vec2(4, 8))
.add_piece(5, 1, false, new MATH.Vec2(3, 7))
.add_piece(3, 0, false, new MATH.Vec2(4, 5))
)
.set_rule("par", 1)
.set_rule("cpu", true),
new GameConfig()
.set_pieces(CONFIG_PIECES_STANDARD)
.set_pool(CONFIG_POOL_NONE)
.set_layout(
new GameConfig.Layout()
.add_piece(7, 1, false, new MATH.Vec2(4, 8))
.add_piece(6, 1, false, new MATH.Vec2(4, 6))
.add_piece(0, 1, false, new MATH.Vec2(4, 4))
.add_piece(5, 0, true, new MATH.Vec2(0, 4))
.add_piece(3, 0, false, new MATH.Vec2(4, 2)),
)
.set_rule("par", 2)
.set_rule("cpu", true),
new GameConfig()
.set_pieces(CONFIG_PIECES_STANDARD)
.set_pool(new Uint8Array([3, 1, 0, 2, 0, 0, 1, 2, 0, 0, 0, 0, 0, 0]))
.set_layout(
new GameConfig.Layout()
.add_piece(4, 1, false, new MATH.Vec2(2, 6))
.add_piece(7, 1, false, new MATH.Vec2(4, 7))
.add_piece(2, 1, false, new MATH.Vec2(4, 8))
.add_piece(0, 1, false, new MATH.Vec2(5, 6))
.add_piece(1, 1, false, new MATH.Vec2(5, 8))
.add_piece(3, 1, false, new MATH.Vec2(6, 8))
.add_piece(7, 0, false, new MATH.Vec2(5, 1))
.add_piece(5, 0, false, new MATH.Vec2(6, 2))
.add_piece(6, 0, true, new MATH.Vec2(6, 6))
.add_piece(3, 0, false, new MATH.Vec2(5, 5))
.add_piece(2, 0, true, new MATH.Vec2(4, 6))
.add_piece(2, 1, false, new MATH.Vec2(4, 1))
.add_piece(6, 1, true, new MATH.Vec2(6, 3))
.add_piece(5, 1, false, new MATH.Vec2(7, 5))
)
.set_rule("par", 1)
.set_rule("cpu", true),
new GameConfig()
.set_pieces(CONFIG_PIECES_STANDARD)
.set_pool(new Uint8Array([1, 1, 1, 1, 1, 1, 1, 2, 0, 0, 0, 0, 0, 0]))
.set_layout(
new GameConfig.Layout()
.add_piece(7, 1, false, new MATH.Vec2(4, 8))
.add_piece(4, 1, true, new MATH.Vec2(4, 7))
.add_piece(2, 1, false, new MATH.Vec2(5, 8))
.add_piece(2, 1, false, new MATH.Vec2(3, 5))
.add_piece(3, 0, true, new MATH.Vec2(2, 6))
.add_piece(6, 0, false, new MATH.Vec2(1, 5))
.add_piece(2, 0, true, new MATH.Vec2(7, 7))
)
.set_rule("par", 1)
.set_rule("cpu", true),
new GameConfig()
.set_pieces(CONFIG_PIECES_STANDARD)
.set_pool(CONFIG_POOL_NONE)
.set_layout(
new GameConfig.Layout()
.add_piece(7, 1, false, new MATH.Vec2(4, 8))
.add_piece(3, 1, false, new MATH.Vec2(3, 7))
.add_piece(5, 1, false, new MATH.Vec2(2, 6))
.add_piece(1, 0, false, new MATH.Vec2(4, 5))
.add_piece(0, 0, false, new MATH.Vec2(4, 6))
)
.set_rule("par", 4)
.set_rule("cpu", true),
new GameConfig()
.set_pieces(CONFIG_PIECES_STANDARD)
.set_pool(new Uint8Array([1, 1, 1, 1, 1, 1, 1, 2, 0, 0, 0, 0, 0, 0]))
.set_layout(
new GameConfig.Layout()
.add_piece(7, 1, false, new MATH.Vec2(4, 8))
.add_piece(2, 1, false, new MATH.Vec2(3, 7))
.add_piece(3, 1, false, new MATH.Vec2(4, 6))
.add_piece(5, 1, true, new MATH.Vec2(2, 3))
.add_piece(2, 0, true, new MATH.Vec2(6, 7))
.add_piece(6, 0, false, new MATH.Vec2(4, 4))
.add_piece(5, 0, false, new MATH.Vec2(4, 2))
)
.set_rule("par", 2)
.set_rule("cpu", true),
new GameConfig()
.set_pieces(CONFIG_PIECES_STANDARD)
.set_pool(new Uint8Array([6, 1, 1, 1, 2, 1, 0, 2, 0, 0, 0, 0, 0, 0]))
.set_layout(
new GameConfig.Layout()
.add_piece(7, 1, false, new MATH.Vec2(1, 5))
.add_piece(1, 1, false, new MATH.Vec2(1, 4))
.add_piece(0, 1, false, new MATH.Vec2(0, 4))
.add_piece(0, 1, false, new MATH.Vec2(1, 3))
.add_piece(3, 1, false, new MATH.Vec2(2, 4))
.add_piece(0, 1, false, new MATH.Vec2(3, 5))
.add_piece(6, 1, true, new MATH.Vec2(4, 5))
.add_piece(2, 1, false, new MATH.Vec2(5, 7))
.add_piece(0, 1, false, new MATH.Vec2(6, 6))
.add_piece(2, 1, false, new MATH.Vec2(7, 7))
.add_piece(1, 0, false, new MATH.Vec2(0, 0))
.add_piece(0, 0, false, new MATH.Vec2(0, 1))
.add_piece(2, 0, false, new MATH.Vec2(1, 0))
.add_piece(0, 0, false, new MATH.Vec2(1, 1))
.add_piece(4, 0, false, new MATH.Vec2(2, 0))
.add_piece(0, 0, false, new MATH.Vec2(2, 2))
.add_piece(3, 0, false, new MATH.Vec2(3, 0))
.add_piece(0, 0, false, new MATH.Vec2(3, 3))
.add_piece(7, 0, false, new MATH.Vec2(4, 0))
.add_piece(0, 0, false, new MATH.Vec2(4, 2))
.add_piece(3, 0, false, new MATH.Vec2(5, 1))
.add_piece(1, 0, false, new MATH.Vec2(5, 2))
.add_piece(4, 0, false, new MATH.Vec2(6, 3))
.add_piece(0, 0, true, new MATH.Vec2(3, 7))
.add_piece(5, 0, true, new MATH.Vec2(4, 6))
.add_piece(6, 0, false, new MATH.Vec2(4, 7))
)
.set_rule("par", 2)
.set_rule("cpu", true),
new GameConfig()
.set_pieces(CONFIG_PIECES_STANDARD)
.set_pool(new Uint8Array([2, 0, 2, 1, 1, 0, 1, 4, 0, 0, 0, 0, 0, 0]))
.set_layout(
new GameConfig.Layout()
.add_piece(4, 0, false, new MATH.Vec2(3, 1))
.add_piece(7, 0, false, new MATH.Vec2(4, 0))
.add_piece(5, 0, false, new MATH.Vec2(6, 3))
.add_piece(0, 0, false, new MATH.Vec2(4, 4))
.add_piece(4, 0, false, new MATH.Vec2(6, 2))
.add_piece(1, 0, false, new MATH.Vec2(6, 4))
.add_piece(3, 0, false, new MATH.Vec2(6, 5))
.add_piece(2, 0, false, new MATH.Vec2(8, 5))
.add_piece(0, 0, false, new MATH.Vec2(7, 5))
.add_piece(0, 0, false, new MATH.Vec2(8, 6))
.add_piece(2, 0, false, new MATH.Vec2(2, 3))
.add_piece(0, 0, false, new MATH.Vec2(3, 4))
.add_piece(3, 0, false, new MATH.Vec2(3, 3))
.add_piece(6, 0, true, new MATH.Vec2(4, 8))
.add_piece(0, 1, false, new MATH.Vec2(0, 0))
.add_piece(1, 1, false, new MATH.Vec2(0, 2))
.add_piece(0, 1, true, new MATH.Vec2(1, 0))
.add_piece(1, 1, false, new MATH.Vec2(1, 5))
.add_piece(7, 1, false, new MATH.Vec2(3, 6))
.add_piece(0, 1, false, new MATH.Vec2(3, 7))
.add_piece(0, 1, false, new MATH.Vec2(4, 5))
.add_piece(0, 1, false, new MATH.Vec2(5, 6))
.add_piece(4, 1, false, new MATH.Vec2(5, 8))
.add_piece(0, 1, false, new MATH.Vec2(6, 6))
.add_piece(5, 1, false, new MATH.Vec2(1, 3))
.add_piece(3, 1, false, new MATH.Vec2(6, 8))
.add_piece(0, 1, false, new MATH.Vec2(7, 7))
.add_piece(2, 1, false, new MATH.Vec2(7, 8))
.add_piece(0, 1, false, new MATH.Vec2(8, 7))
.add_piece(1, 1, false, new MATH.Vec2(8, 8))
)
.set_rule("par", 4)
.set_rule("cpu", true),
new GameConfig()
.set_pieces(CONFIG_PIECES_STANDARD)
.set_pool(new Uint8Array([0, 1, 1, 2, 2, 0, 0, 7, 0, 1, 0, 0, 0, 0]))
.set_layout(
new GameConfig.Layout()
.add_piece(7, 0, false, new MATH.Vec2(4, 0))
.add_piece(5, 0, false, new MATH.Vec2(3, 0))
.add_piece(0, 0, false, new MATH.Vec2(3, 2))
.add_piece(0, 0, false, new MATH.Vec2(4, 3))
.add_piece(6, 0, false, new MATH.Vec2(4, 5))
.add_piece(0, 0, false, new MATH.Vec2(5, 3))
.add_piece(0, 0, false, new MATH.Vec2(5, 5))
.add_piece(4, 0, false, new MATH.Vec2(6, 3))
.add_piece(3, 0, false, new MATH.Vec2(6, 4))
.add_piece(2, 0, true, new MATH.Vec2(7, 3))
.add_piece(0, 0, false, new MATH.Vec2(7, 5))
.add_piece(1, 0, false, new MATH.Vec2(8, 4))
.add_piece(0, 0, false, new MATH.Vec2(8, 5))
.add_piece(1, 0, true, new MATH.Vec2(5, 8))
.add_piece(6, 1, true, new MATH.Vec2(0, 0))
.add_piece(1, 1, false, new MATH.Vec2(0, 2))
.add_piece(5, 1, false, new MATH.Vec2(0, 3))
.add_piece(0, 1, false, new MATH.Vec2(1, 3))
.add_piece(0, 1, false, new MATH.Vec2(2, 4))
.add_piece(0, 1, false, new MATH.Vec2(3, 4))
.add_piece(3, 1, false, new MATH.Vec2(3, 7))
.add_piece(4, 1, false, new MATH.Vec2(4, 6))
.add_piece(2, 1, false, new MATH.Vec2(5, 6))
.add_piece(0, 1, false, new MATH.Vec2(6, 6))
.add_piece(7, 1, false, new MATH.Vec2(6, 7))
.add_piece(0, 1, false, new MATH.Vec2(7, 7))
.add_piece(0, 1, false, new MATH.Vec2(8, 7))
.add_piece(1, 1, false, new MATH.Vec2(8, 8))
)
.set_rule("par", 4)
.set_rule("cpu", true),
],
};