for(int j=0; j<9; j++) {
if(Pole[j] == "X" && Pole[j+1] == "X" && Pole[j+2] == "X") {cout << "Wygrywa Player1"; remis = false;return 0;}
if(Pole[j] == "O" && Pole[j+1] == "O" && Pole[j+2] == "O") {cout << "Wygrywa Player2";remis = false;return 0;}
}
1. Wychodzisz tutaj po za tablice, tablica od 0 do 8 , a Ty sprawdzasz Pole[7+2], Pole[8+2] ...
2. Nie masz sprawdzanie, czy np. Gracz1 w swoim ruchu nie dał np. :
2.1 Zajętego już pola przez siebie.
2.2 Zajętego już pola przez drugiego gracza.