Add new check and checkmate guides.

This commit is contained in:
yukirij 2024-12-18 22:58:31 -08:00
parent bd9ce921fc
commit 8377731fd6
4 changed files with 59 additions and 4 deletions

View File

@ -218,7 +218,7 @@ GAME.Game = class {
this.state = {
code:0,
check:false,
check:false, //[false, false],
};
this.update_board();

View File

@ -336,12 +336,49 @@ const GAME_CONFIGS = {
.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(CONFIG_POOL_DEMO)
.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(CONFIG_POOL_DEMO)
.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))
),
// 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_Trial1: 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(5, 0, false, new MATH.Vec2(4, 6))
@ -364,5 +401,5 @@ const GAME_CONFIGS = {
.add_piece(2, 0, false, new MATH.Vec2(6, 5))
.add_piece(0, 1, false, new MATH.Vec2(1, 4))
.add_piece(2, 0, true, new MATH.Vec2(0, 3))
)
),
};

View File

@ -611,7 +611,7 @@ const INTERFACE = {
let is_check = (GAME_DATA.state.check != 0 || GAME_DATA.state.code == GAME.Const.State.Checkmate)
&& piece !== null
&& piece.piece == GAME.Const.PieceId.Heart
&& piece.player == ((GAME_DATA.turn + GAME_DATA.config.rules.reverse) & 1);
&& tile.checking;
let background_color = null;
let border_color = null;

View File

@ -668,7 +668,25 @@ const SCENES = {
], []);
} else {
UI.mainmenu_guide("guide_" + data, true);
switch(data) {
case "check": {
UI.mainnav([
UI.button("1", () => { INTERFACE.load(GAME_CONFIGS.Guide_Check); }),
UI.button("2", () => { INTERFACE.load(GAME_CONFIGS.Guide_Check2); }),
UI.button("3", () => { INTERFACE.load(GAME_CONFIGS.Guide_Check3); }),
], []);
} break;
case "checkmate": {
UI.mainnav([
UI.button("Ex", () => { INTERFACE.load(GAME_CONFIGS.Guide_Checkmate); }),
UI.button("1", () => { INTERFACE.load(GAME_CONFIGS.Guide_Trial1); }),
], []);
} break;
default: {
UI.mainnav([], []);
}
}
switch(data) {
case "drop": config = GAME_CONFIGS.Guide_Drop; break;