Compare commits
2 commits
acfcd505d3
...
440bf12c43
| Author | SHA1 | Date | |
|---|---|---|---|
| 440bf12c43 | |||
| bf22060614 |
1 changed files with 11 additions and 8 deletions
|
|
@ -286,7 +286,7 @@ pub fn Board(
|
||||||
let is_white = player_id == 0;
|
let is_white = player_id == 0;
|
||||||
let hovered_moves = use_context::<RwSignal<Vec<(CheckerMove, CheckerMove)>>>();
|
let hovered_moves = use_context::<RwSignal<Vec<(CheckerMove, CheckerMove)>>>();
|
||||||
|
|
||||||
// Exit-eligible (§8c): all the player's checkers are in their last jan.
|
// Exit-eligible: all the player's checkers are in their last jan.
|
||||||
// White last jan = fields 19-24 (board indices 18-23, positive values).
|
// White last jan = fields 19-24 (board indices 18-23, positive values).
|
||||||
// Black last jan = fields 1-6 (board indices 0-5, negative values).
|
// Black last jan = fields 1-6 (board indices 0-5, negative values).
|
||||||
let board_snapshot = view_state.board;
|
let board_snapshot = view_state.board;
|
||||||
|
|
@ -453,13 +453,14 @@ pub fn Board(
|
||||||
} else {
|
} else {
|
||||||
let origins = valid_origins_for(&seqs_k, &staged);
|
let origins = valid_origins_for(&seqs_k, &staged);
|
||||||
if origins.iter().any(|&o| o == field_num) {
|
if origins.iter().any(|&o| o == field_num) {
|
||||||
let dests = valid_dests_for(&seqs_k, &staged, field_num);
|
|
||||||
if !dests.is_empty() && dests.iter().all(|&d| d == 0) {
|
|
||||||
// All destinations are exits: auto-stage
|
|
||||||
staged_moves.update(|v| v.push((field_num, 0)));
|
|
||||||
} else {
|
|
||||||
selected_origin.set(Some(field_num));
|
selected_origin.set(Some(field_num));
|
||||||
}
|
// let dests = valid_dests_for(&seqs_k, &staged, field_num);
|
||||||
|
// if !dests.is_empty() && dests.iter().all(|&d| d == 0) {
|
||||||
|
// // All destinations are exits: auto-stage
|
||||||
|
// staged_moves.update(|v| v.push((field_num, 0)));
|
||||||
|
// } else {
|
||||||
|
// selected_origin.set(Some(field_num));
|
||||||
|
// }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -693,5 +694,7 @@ mod tests {
|
||||||
fn test_bar_matched_dice_used() {
|
fn test_bar_matched_dice_used() {
|
||||||
assert_eq!((true, false), bar_matched_dice_used(&[(22, 24)], (2, 3)));
|
assert_eq!((true, false), bar_matched_dice_used(&[(22, 24)], (2, 3)));
|
||||||
assert_eq!((false, true), bar_matched_dice_used(&[(22, 0)], (2, 3)));
|
assert_eq!((false, true), bar_matched_dice_used(&[(22, 0)], (2, 3)));
|
||||||
|
assert_eq!((false, true), bar_matched_dice_used(&[(24, 0)], (5, 1)));
|
||||||
|
assert_eq!((true, false), bar_matched_dice_used(&[(24, 0)], (1, 5)));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue