Курсовая работа: Программа "Крестики-нолики 5 в ряд на неограниченном игровом поле"
fields[x][y] = id;
int series_length = 0;//Текущая длина ряда
unsigned long sum = 0;//Общее значение оценочной функции
///////////Расчет сверху вниз/////////
//Проход по каждой клетки, которая может входить в ряд
for (int i = 0;i<5;i++)
{
//Проверка, не вышли ли за границы поля
if ((x-4+i) < 0) continue;
if ((x+i) > (size_x - 1)) break;
//Проход по всем возможным рядам, отстоящим от клетки не более чем на 5
for (int j=0;j<5;j++)
{
if ((fields[x-4+i+j][y] != id) && (fields[x-4+i+j][y] != 0))
{
//Конец ряда
series_length = 0;
break;
}
if (fields[x-4+i+j][y] != 0) series_length++; //Ряд увеличивается
}
if (series_length == 1) series_length = 0;//Ряд из самой клетки не учитываем
if (series_length == 5) series_length = 100; //Выигрышная ситуация, ставим большое значение
//Плюсуем серию к общей сумме
unsigned long pow_st = valuation_factor;
if (series_length == 100)
{
if (id == 2)
pow_st = 10000;//Большое значение при своем выигрыше