ragazzi devo assolutamente passare una variabile per indirizzo, in questo problema nel for di output dopo la chiamata a mosse cavallo, nella condizione del for deve esserci j<i e non j<7 forzato. come faccio a passarla per indirizzo? una mano grazieee
codice:
#include<stdio.h>
#include<stdlib.h>
void mosse_cavallo(int i,int pos_iniz[],int pos_possibili[2][8]);
int main()
{ int index,i,j,pos_iniz[3],pos_possibili[2][8];
printf("Inserisci le coordinate della posizione iniziale del cavallo:\n");
scanf("%d %d",&pos_iniz[0],&pos_iniz[1]);
printf("Le possibili mosse del cavallo sono:\n");
mosse_cavallo(i,pos_iniz,pos_possibili);
for(j=0;j<=7;j++)
{printf("%d",pos_possibili[0][j]);
printf("%d\n",pos_possibili[1][j]);
}
}
void mosse_cavallo(int i,int pos_iniz[],int pos_possibili[2][8])
{ int x,y;
i=0;
x=pos_iniz[0]+1;
y=pos_iniz[1]+2;
if((x>=0)&&(y>=0))
{if((x<=7)&&(y<=7))
{pos_possibili[0][i]=x;
pos_possibili[1][i]=y;
i=i+1;
}
}
x=pos_iniz[0]+1;
y=pos_iniz[1]-2;
if((x>=0)&&(y>=0))
{if((x<=7)&&(y<=7))
{pos_possibili[0][i]=x;
pos_possibili[1][i]=y;
i=i+1;
}
}
x=pos_iniz[0]-1;
y=pos_iniz[1]+2;
if((x>=0)&&(y>=0))
{if((x<=7)&&(y<=7))
{pos_possibili[0][i]=x;
pos_possibili[1][i]=y;
i=i+1;
}
}
x=pos_iniz[0]-1;
y=pos_iniz[1]-2;
if((x>=0)&&(y>=0))
{if((x<=7)&&(y<=7))
{pos_possibili[0][i]=x;
pos_possibili[1][i]=y;
i=i+1;
}
}
x=pos_iniz[0]+2;
y=pos_iniz[1]+1;
if((x>=0)&&(y>=0))
{if((x<=7)&&(y<=7))
{pos_possibili[0][i]=x;
pos_possibili[1][i]=y;
i=i+1;
}
}
x=pos_iniz[0]+2;
y=pos_iniz[1]-1;
if((x>=0)&&(y>=0))
{if((x<=7)&&(y<=7))
{pos_possibili[0][i]=x;
pos_possibili[1][i]=y;
i=i+1;
}
}
x=pos_iniz[0]-2;
y=pos_iniz[1]+1;
if((x>=0)&&(y>=0))
{if((x<=7)&&(y<=7))
{pos_possibili[0][i]=x;
pos_possibili[1][i]=y;
i=i+1;
}
}
x=pos_iniz[0]-2;
y=pos_iniz[1]-1;
if((x>=0)&&(y>=0))
{if((x<=7)&&(y<=7))
{pos_possibili[0][i]=x;
pos_possibili[1][i]=y;
i=i+1;
}
}
return;
}