salve ragazzi sono al mio primo post in questo forum chissà se voi riuscite ad aiutarmi, ho dei problemi con un programmino sul Turtle Graphics, praticamente la mia tartaruga non vuole muoversi comunque anche se la la prima istruzione la esegue non viene memorizzata per quella successiva cioè la tartaruga resta sempre in griglia[ 0 ] [ 0 ]. Vi posto il codice se volete dategli un'occhiatina e a me un aiutino :help:
PHP:
#include <stdio.h>
#define Nr 50
#define Nc 50
void alzaPenna (int matrix[] [ Nc ], int penna, int x, int y);
void abbassaPenna (int matrix[] [ Nc ], int penna, int x, int y);
void girareDx(int matrix[] [ Nc ], int penna, int x, int y);
void girareSx(int matrix[] [ Nc ], int penna, int x, int y);
void avanti(int matrix[] [ Nc ], int penna, int x, int y);
void visualizzaMatrix(int matrix[] [ Nc ], int penna, int x, int y);
int main(){
int griglia[ Nr ] [ Nc ] = {{0}, {0}}; /* matrice */
int idx, jack;
int scelta; /* variabile per comando*/
int penna;
for(idx = 0; idx < Nr; idx++){
for(jack = 0; jack < Nc; jack++){
griglia[ idx ] [ jack ] = 0;
}
}
scelta = -1;
idx = 0;
jack = 0;
while(scelta != 7){
griglia[ idx ] [ jack ];
printf(" 1 - alza la penna\n");
printf(" 2 - Abbassa la penna\n");
printf(" 3 - Gira a destra\n");
printf(" 4 - Gira a sinstra\n");
printf(" 5 - Vai avanti di 10 spazi\n");
printf(" 6 - Visualizza la matrice 50 per 50\n");
printf(" 7 - Fine dati\n");
printf("Selezionare una preferenza = ");
scanf ("%d", &scelta);
switch(scelta){
case 1 : alzaPenna(griglia, penna, idx, jack); break;
case 2 : abbassaPenna(griglia, penna, idx, jack); break;
case 3 : girareDx(griglia, penna, idx, jack); break;
case 4 : girareSx(griglia, penna, idx, jack); break;
case 5 : avanti(griglia, penna, idx, jack); break;
case 6 : visualizzaMatrix(griglia, penna, idx, jack); break;
}/*fine switch*/
}/*fine while*/
system("pause");
return 0;
}
void alzaPenna(int matrix[] [ Nc ], int penna, int x, int y){
matrix [ x ] [ y ] = 0;
printf ("floor [ %d ] [ %d ] = 0\n", x,y);
penna = 0;
}
void abbassaPenna(int matrix[] [ Nc ], int penna, int x, int y){
matrix [ x ] [ y ] = 1;
printf ("floor [ %d ] [ %d ] = 1\n", x, y);
penna = 1;
}
void avanti(int matrix[] [ Nc ], int penna, int x, int y){
y += 10;
printf ("floor [ %d ] [ %d ]\n", x,y);
}
void girareDx(int matrix[] [ Nc ], int penna, int x, int y){
if(penna == 1){
y--;
printf("TartaPosizione [ %d ] [ %d ] con penna abbassata\n", x, y);
}
else if(penna == 0){
y--;
printf("TartaPosizione [ %d ] [ %d ] con penna alzata\n", x, y);
}
}
void girareSx(int matrix[] [ Nc ], int penna, int x, int y){
if(penna == 1){
x--;
printf("TartaPosizione [ %d ] [ %d ] con penna abbassata\n", x, y);
}
else if(penna == 0){
x--;
printf("TartaPosizione [ %d ] [ %d ] con penna alzata\n", x, y);
}
}
void visualizzaMatrix(int matrix[] [ Nc ], int penna, int x, int y){
int i, j; /*contatori*/
for(i = 0; i < Nr; i++){
for(j = 0; j < Nc; j++){
if(matrix[x][y] == 0){printf("|");}
if(j % 50 == 0){printf("\n");}
else if(matrix[x][y] == 1) { printf( "*");}
}
}
printf("\n");
}