codice:
#include<stdio.h>
#include<stdlib.h>
void mosse_cavallo(int i,int pos_iniz[],int pos_possibili[][10]);
void controllo(int i,int x,int y,int pos_possibili[][10]);
int main()
{ int i,j,pos_iniz[3],pos_possibili[10][10];
i=0;
printf("Inserisci le coordinate della posizione iniziale del cavallo:\n");
scanf("%d",&pos_iniz[0]);
scanf("%d",&pos_iniz[1]);
mosse_cavallo(i,pos_iniz,pos_possibili);
printf("Le possibili mosse del cavallo sono:\n");
for(j=0;j<=i;j++)
{printf("pos_possibili[%d][%d]=%d ",pos_possibili[0][j]);
printf("pos_possibili[%d][%d]=%d ",pos_possibili[1][j]);
}
system("PAUSE");
}
void mosse_cavallo(int i,int pos_iniz[],int pos_possibili[][10])
{ int i,x,y;
x=pos_iniz[0]+1;
y=pos_iniz[1]+2;
controllo(x,y,pos_possibili);
x=pos_iniz[0]+1;
y=pos_iniz[1]-2;
controllo(x,y,i,pos_possibili);
x=pos_iniz[0]-1;
y=pos_iniz[0]+2;
controllo(x,y,i,pos_possibili);
x=pos_iniz[0]-1;
y=pos_iniz[0]-2;
controllo(x,y,i,pos_possibili);
x=pos_iniz[0]+2;
y=pos_iniz[0]+1;
controllo(x,y,i,pos_possibili);
x=pos_iniz[0]+2;
y=pos_iniz[0]-1;
controllo(x,y,i,pos_possibili);
x=pos_iniz[0]-2;
y=pos_iniz[0]+1;
controllo(x,y,i,pos_possibili);
x=pos_iniz[0]-2;
y=pos_iniz[0]-1;
controllo(i,x,y,pos_possibili);
return ;
}
void controllo(int i,int x,int y,int pos_possibili[][10])
{int i,x,y,pos_possibili[10][10];
if((x>=0)&&(y>=0))
{pos_possibili[0][i]=x;
pos_possibili[1][i]=y;
i=i++;
}
return ;
}