ciao ragazzi, ho qualche problema con l'esercizio che ora allego e spiego in un commento sotto:

#include<stdio.h>
#include<stdlib.h>
#define SIZE 50

/* x righe, y colonne, penna: 1 significa che è abbassata altrimenti
0 è alzata */

int x=0,y=0,penna=0;

void alzaPenna(int penna, int matrice[][SIZE],int x, int y);
void abbassaPenna(int matrice[][SIZE],int x,int y, int penna);
void girareDestra(int matrice[][SIZE],int x,int y, int penna);
void girareSinistra(int matrice[][SIZE],int x,int y, int penna);
void visualizza(int matrice[][SIZE]);
void avanti_10(int matrice[][SIZE],int penna, int x, int y);

main()
{
int floor[SIZE][SIZE]={{0},{0}};
int vComandi[8]={1,2,3,4,5,6,9,10};

int i,j,comando;

printf("VISUALIZZAZIONE FLOOR\n\n");


for(i=0;i<50;i++){
for(j=0;j<50;j++){
printf("%d ",floor[i][j]);
}
printf("\n");
}
printf("\n\nLa tartaruga parte dalla posizione iniziale (0;0).\n\n");
printf("Inserire un comando:\n");
printf("(0 per aiuto, -1 per terminare): ");
scanf("%d", &comando);

while(comando!=-1){
switch(comando){
case 0:
printf("\nPremere 1 per alzare la penna.\n");
printf("Premere 2 per abbassare la penna.\n");
printf("Premere 3 per girare a destra.\n");
printf("Premere 4 per girare a sinistra.\n");
printf("Premere 5-10 per andare avanti di 10 spazi( o un numero diverso da 10).\n");
printf("Premere 6 per visualizzare la matrice 50X50\n");
printf("Premere 7 per terminare l'imput\n");
break;
case 1:
alzaPenna(penna,floor,x,y);
break;
case 2:
abbassaPenna(floor, x,y,penna);
break;
case 3:
girareDestra(floor,x,y,penna);
break;
case 4:
girareSinistra(floor,x,y, penna);
break;
case 5:
avanti_10(floor,penna,x,y);
break;
case 6:
visualizza(floor);
break;
case 7:
break;
default:
printf("Il tasto scelto non consente di effettuare alcuna scelta.\n");
break;
}
printf("\n\nInserire un comando:\n");
printf("(0 per aiuto, -1 per terminare): ");
scanf("%d", &comando);
}

printf("\n\n");

system("pause");
}

void alzaPenna(int penna, int matrice[][SIZE],int x, int y)
{
matrice[x][y]==0;
printf("matrice[%d][%d]= 0\n\n", x, y);
}

void abbassaPenna(int matrice[][SIZE],int x, int y, int penna)
{
matrice[x][y]=1;
printf("matrice[%d][%d]= 1\n\n",x,y);
penna=1;
}

void girareDestra(int matrice[][SIZE],int x,int y,int penna)
{
if(penna==1){
y++;
matrice[x][y]=1;
printf("Tartaruga in posizione: (%d,%d)\n\n",x,y);
}
else if(penna==0){
y++;
printf("Tartaruga in posizione: (%d,%d)\n\n",x,y);
}
}

void girareSinistra(int matrice[][SIZE],int x,int y, int penna)
{
if(penna==1){
y--;
matrice[x][y]=1;
printf("Tartaruga in posizione: (%d,%d)\n\n",x,y);
}
else if(penna==0){
y--;
printf("Tartaruga in posizione: (%d,%d)\n\n",x,y);
}
}

void visualizza(int matrice[][SIZE])
{
int i,j;

for(i=0;i<SIZE;i++){
for(j=0;j<SIZE;j++){
if(matrice[i][j]==0) printf(" ");
else if(matrice[i][j]==1) printf("*");
}
printf("\n");
}
}

void avanti_10(int matrice[][SIZE],int penna,int x,int y)
{
y+=10;

if(penna==1){
matrice[x][y]=1;
printf("Tartaruga in posizione: (%d,%d)\n\n",x,y);
}
}


/* Devo simulare il movimento di una tartaruga lungo una matrice 50X50, questa tartaruga ha una penna che può abbassare segnando ogni volta il movimento o alzare e muoversi senza segnare. Il problema e' che ogni chiamata di funzione azzera le coordinate x e y quindi la tartaruga rimane ferma. un altro problema che mi ponevo era come mettere dei limiti al movimento della tartaruga in modo che non superasse i limiti della matrice. */