Это мой первый пост на этом форуме, и я делаю это только из-за этой проблемы. Некоторое время я работал над программой (просто для удовольствия) и, чтобы упростить себе задачу, я использовал множество глобальных переменных, но теперь я пытался сделать отдельные функции более независимыми и гибкими. Определенная функция по какой-то причине вызывает множество проблем.
int which_move(int ac,int bc,int cc){
int illcheck;
int ill_done;
int ill_pos;
int true_move;
true_move=3;
ill_done=-1;
for(u=6;u>=0;u--){
ill_pos=ert-1;
illcheck=0;
for(y=0;y<ill_len[u];y++){
if(buff[ill_pos]==ill_move[u][y]){
++illcheck;
if(ill_pos==0)
ill_pos=100;
--ill_pos;
if(illcheck==ill_len[u]){
ill_done=u;
break;
}
}
else
break;
}
if(ill_done!=-1)
break;
}
if(ac==1||ill_done==1||ill_done==2||ill_done==6)
true_move=0;
if(bc>2)
true_move=1;
if(cc>2)
true_move=2;
if(ill_done==0||ill_done==3||ill_done==4)
true_move=4;
if(ill_done==5)
true_move=5;
return true_move;
}
и вот как я вызываю функцию:
int open_move;
open_move=which_move(acheck,bcheck,ccheck);
и open_move
никогда не совпадают с true_move
.
Я пытался преобразовать что-то вроде этого
int which_move(int *true_move,int ac,int bc,int cc)
и удалить int true_move;
и возврат return true_move;
и реализовать такую функцию:
int open_move;
which_move(open_move,acheck,bcheck,ccheck);
все еще работаю.
Я погуглил, пока chrome не начало отставать из-за слишком большого количества открытых вкладок, и попробовал все уловки, которые смог найти, но я не стал мудрее. Пожалуйста, помогите мне с тем, что я делаю неправильно.
Спасибо от любителя.