Гриб_под_зонтом, баг#1 - если я просто вышел, то мне напишут что я победил.
Три цикла - как то много. Вот здесь
for (int k=0; k <= 5; k++)
{
if (pole[x2][y2+k]=='X') win++;
}
Ты не предусмотрел, что может попасться такая последовательность XXOXX. А жаль. Алгоритм: пробегаем строку, ищя повторение. Ищем повторение: сравниваем предыдущий символ с текущим, если равны - длина++, иначе запоминаем текущий символ(чтоб было с чем следующий сравнивать), изменяем длину.
Замечание Если текущий символ пробел - то цепочки нет, иначе цепочка началась(длина = 1).
Хотя я видел так - функция с пятью аргументами, котороя их сравнивает между собой. Тогда бы все функции для интеллекта выглядели бы очень похоже.