@MrGerwant No niestety nie ogarniam c++ żeby ci pomóc ale z doświadczenia wiem, że pewnie masz gdzieś po drodze jakiś mały błąd logiczny i w takich sytuacjach zazwyczaj robię jedną z tych rzeczy:
1 - Siedzę i linijka po linijce z debuggerem sprawdzam po kolei jak się wykonuje kod obserwując wszystkie zmienne itp. To może zająć bardzo długo i możesz nigdy nie znaleźć tego błędu.
2 - Przepisać logikę tur od nowa i c⁎⁎j bo szkoda tracić czasu na debugowanie kodu w nieskończoność. Spróbuj napisać to teraz w trochę inny sposób i zaimplementuj jakieś mechanizmy bezpieczeństwa które będą się upewniać że dobra postać ma teraz turę.