Я занимался разработкой программы ac, в которой я создал функцию для другой цели, но немногие из них не выполняются должным образом, т.е. они выполняются некоторое время, а иногда нет, просто выполняется первая строка, где инициализируется переменная, и послечто он непосредственно переходит в секцию возврата и дает инициализированное значение переменной, даже если данное условие истинно. Вот код одной из функций:
int thirdMove()
{
int r=0;
if(sq[5]=='0')
{
if(sq[1]=='X')
{
if(sq[2]=='X' && sq[3]=='0' && sq[7]=='7')
{
r=7;
}
else if(sq[2]=='X' && sq[3]=='0' && sq[7]=='X')
{
r=4;
}
else if(sq[3]=='X' && sq[2]=='0' && sq[8]=='8')
{
r=8;
}
else if(sq[3]=='X' && sq[2]=='0' && sq[8]=='X')
{
while(1)
{
r=random();
if(r==4 || r==6)
{
break;
}
else
{
continue;
}
}
}
else if(sq[4]=='X' && sq[7]=='0' && sq[3]=='3')
{
r=3;
}
else if(sq[4]=='X' && sq[7]=='0' && sq[3]=='X')
{
r=2;
}
else if(sq[6]=='X' && sq[3]=='0' && sq[7]=='7')
{
r=7;
}
else if(sq[6]=='X' && sq[3]=='0' && sq[7]=='X')
{
r=4;
}
else if(sq[7]=='X' && sq[3]=='0' && sq[6]=='6')
{
r=6;
}
else if(sq[7]=='X' && sq[3]=='0' && sq[6]=='X')
{
while(1)
{
r=random();
if(r==2 || r==8)
{
break;
}
else
{
continue;
}
}
}
else if(sq[8]=='X' && sq[7]=='0' && sq[3]=='3')
{
r=3;
}
else if(sq[8]=='X' && sq[7]=='0' && sq[3]=='X')
{
r=2;
}
else if(sq[9]=='X' && sq[2]=='0' && sq[8]=='8')
{
r=8;
}
else if(sq[9]=='X' && sq[2]=='0' && sq[8]=='X')
{
r=7;
}
else if(sq[9]=='X' && sq[4]=='0' && sq[6]=='6')
{
r=6;
}
else if(sq[9]=='X' && sq[4]=='0' && sq[6]=='X')
{
r=3;
}
else if(sq[9]=='X' && sq[6]=='0' && sq[4]=='4')
{
r=4;
}
else if(sq[9]=='X' && sq[6]=='0' && sq[4]=='X')
{
r=7;
}
else if(sq[9]=='X' && sq[8]=='0' && sq[2]=='2')
{
r=2;
}
else if(sq[9]=='X' && sq[8]=='0' && sq[2]=='X')
{
r=3;
}
}
else if(sq[2]=='X')
{
if(sq[3]=='X' && sq[1]=='0' && sq[9]=='9')
{
r=9;
}
else if(sq[3]=='X' && sq[1]=='0' && sq[9]=='X')
{
r=6;
}
else if(sq[4]=='X' && sq[1]=='0' && sq[9]=='9')
{
r=9;
}
else if(sq[4]=='X' && sq[1]=='0' && sq[9]=='X')
{
while(1)
{
r=random();
if(r==3 || r==7)
{
break;
}
else
{
continue;
}
}
}
else if(sq[6]=='X' && sq[3]=='0' && sq[7]=='7')
{
r=7;
}
else if(sq[6]=='X' && sq[3]=='0' && sq[7]=='X')
{
while(1)
{
r=random();
if(r==1 || r==9)
{
break;
}
else
{
continue;
}
}
}
else if(sq[7]=='X' && sq[1]=='0' && sq[9]=='9')
{
r=9;
}
else if(sq[7]=='X' && sq[1]=='0' && sq[9]=='X')
{
r=8;
}
else if(sq[8]=='X' && sq[1]=='0' && sq[9]=='9')
{
r=9;
}
else if(sq[8]=='X' && sq[1]=='0' && sq[9]=='X')
{
r=7;
}
else if(sq[8]=='X' && sq[3]=='0' && sq[7]=='7')
{
r=7;
}
else if(sq[8]=='X' && sq[3]=='0' && sq[7]=='X')
{
r=9;
}
else if(sq[8]=='X' && sq[7]=='0' && sq[3]=='3')
{
r=3;
}
else if(sq[8]=='X' && sq[7]=='0' && sq[3]=='X')
{
r=1;
}
else if(sq[8]=='X' && sq[9]=='0' && sq[1]=='1')
{
r=1;
}
else if(sq[8]=='X' && sq[9]=='0' && sq[1]=='X')
{
r=7;
}
else if(sq[9]=='X' && sq[3]=='0' && sq[7]=='7')
{
r=7;
}
else if(sq[9]=='X' && sq[3]=='0' && sq[7]=='X')
{
r=8;
}
}
else if(sq[3]=='X')
{
if(sq[4]=='X' && sq[1]=='0' && sq[9]=='9')
{
r=9;
}
else if(sq[4]=='X' && sq[1]=='0' && sq[9]=='X')
{
r=6;
}
else if(sq[6]=='X' && sq[9]=='0' && sq[1]=='1')
{
r=1;
}
else if(sq[6]=='X' && sq[9]=='0' && sq[1]=='X')
{
r=2;
}
else if(sq[7]=='X' && sq[2]=='0' && sq[8]=='8')
{
r=8;
}
else if(sq[7]=='X' && sq[2]=='0' && sq[8]=='X')
{
r=9;
}
else if(sq[7]=='X' && sq[4]=='0' && sq[6]=='6')
{
r=6;
}
else if(sq[7]=='X' && sq[4]=='0' && sq[6]=='X')
{
r=9;
}
else if(sq[7]=='X' && sq[6]=='0' && sq[4]=='4')
{
r=4;
}
else if(sq[7]=='X' && sq[6]=='0' && sq[4]=='X')
{
r=1;
}
else if(sq[7]=='X' && sq[8]=='0' && sq[2]=='2')
{
r=2;
}
else if(sq[7]=='X' && sq[8]=='0' && sq[2]=='X')
{
r=1;
}
else if(sq[8]=='X' && sq[9]=='0' && sq[1]=='1')
{
r=1;
}
else if(sq[8]=='X' && sq[9]=='0' && sq[1]=='X')
{
r=2;
}
else if(sq[9]=='X' && sq[7]=='0' && sq[4]=='4')
{
r=4;
}
else if(sq[9]=='X' && sq[7]=='0' && sq[4]=='X')
{
while(1)
{
r=random();
if(r==2 || r==8)
{
break;
}
else
{
continue;
}
}
}
}
else if(sq[4]=='X')
{
}
}
else if(sq[5]=='X')
{
}
return r;
}
В этой функции она должна выполнить некоторые условия, если они истинны, тогда она должна вернуть значение в соответствии с условием, но она возвращает только 0, чтоприсваивается переменной r. При отладке функции она заканчивается на int r=0;
и возвращает неправильное значение, даже если условия выполняются. Точно так же у меня есть еще две функции с таким же типом операций, и они вызывают ту же проблему. Пожалуйста, помогите мне решить эту проблему и, пожалуйста, упростите ваши предложения или решения для лучшего понимания меня, поскольку я новичок. Спасибо