From 274206466e1ef052d9201d702edbaf58cd88bc79 Mon Sep 17 00:00:00 2001 From: Joker2770 <1214220480@qq.com> Date: Sun, 18 Aug 2024 22:30:35 +0800 Subject: [PATCH] fix: prevent out of boundary for board :bug: --- src/caro.cpp | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/caro.cpp b/src/caro.cpp index d39182d..b75939b 100644 --- a/src/caro.cpp +++ b/src/caro.cpp @@ -7,7 +7,7 @@ /** qpiskvork is another gomoku or renju manager adapting to Windows and Linux systems. - Copyright (C) 2023 Jintao Yang + Copyright (C) 2023-2024 Jintao Yang This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -50,12 +50,12 @@ bool Caro::findShap(Board *board, const pair &p_drt) while (true) { - if (STONECOLOR::BLACK == board->getIdxStoneColor(p_drt_idx)) + if (board->isPosOutOfBoard(p_drt_idx)) + vColor.push_back(3); + else if (STONECOLOR::BLACK == board->getIdxStoneColor(p_drt_idx)) vColor.push_back(1); else if (STONECOLOR::WHITE == board->getIdxStoneColor(p_drt_idx)) vColor.push_back(2); - else if (board->isPosOutOfBoard(p_drt_idx)) - vColor.push_back(3); else vColor.push_back(0); @@ -70,12 +70,12 @@ bool Caro::findShap(Board *board, const pair &p_drt) p_drt_idx.second = p_idx.second - p_drt.second; while (true) { - if (STONECOLOR::BLACK == board->getIdxStoneColor(p_drt_idx)) + if (board->isPosOutOfBoard(p_drt_idx)) + vColor.push_back(3); + else if (STONECOLOR::BLACK == board->getIdxStoneColor(p_drt_idx)) vColor.push_back(1); else if (STONECOLOR::WHITE == board->getIdxStoneColor(p_drt_idx)) vColor.push_back(2); - else if (board->isPosOutOfBoard(p_drt_idx)) - vColor.push_back(3); else vColor.push_back(0);