fix: onitama win con

This commit is contained in:
2026-04-08 12:25:50 +08:00
parent cbf6dce237
commit 244a8bb35a
2 changed files with 45 additions and 11 deletions
+9 -7
View File
@@ -176,22 +176,24 @@ const swapCard = registry.register({
/**
* 检查占领胜利条件:玩家的师父棋子到达对手的初始位置
* 红色师父需要到达 (2, 4) - 黑色师父的初始位置
* 黑色师父需要到达 (2, 0) - 红色师父的初始位置
*/
async function handleCheckConquestWin(game: OnitamaGame): Promise<PlayerType | null> {
const state = game.value;
// 红色师父到达 y=4(黑色初始位置)
// 红色师父到达 (2, 4)(黑色师父的初始位置)
const redMaster = state.pawns['red-master'];
if (redMaster && redMaster.regionId === 'board' && redMaster.position[1] === 4) {
if (redMaster && redMaster.regionId === 'board' && redMaster.position[0] === 2 && redMaster.position[1] === 4) {
return 'red';
}
// 黑色师父到达 y=0(红色初始位置)
// 黑色师父到达 (2, 0)(红色师父的初始位置)
const blackMaster = state.pawns['black-master'];
if (blackMaster && blackMaster.regionId === 'board' && blackMaster.position[1] === 0) {
if (blackMaster && blackMaster.regionId === 'board' && blackMaster.position[0] === 2 && blackMaster.position[1] === 0) {
return 'black';
}
return null;
}