#include <stdio.h>#include <stdlib.h>
#include <time.h>
#define N 20 //se N è 19 va tutto bene,appena arriva a 20 non fa più nulla,immagino perchè il char non ha abbastanza slot di memoria per 400 posti
#define K 100
int main() {
int i, j, h=0, a=N/2, b=N/2, leng=4, lengz=3, k, z, m, p, l, n=0, s=0, e=0, w=0;
char c[N][N];
double sum1=0, sum2=0, sum3=0, sum4=0;
srand(time(NULL));
for (i=0; i<=N; i++) {
for (j=0; j<N; j++) {
c[i][j]='o'; c[0][j]='='; c[N-1][j]='='; c[i][0]='|'; c[i][N-1]='|'; c[a][b]='*';
}
}
for (i=0; i<N; i++) {
for (j=0; j<N; j++) {
printf("%c", c[i][j]);
}
printf("\n");
}
for (i=0; i<=N; i++) {
for (j=0; j<N; j++) {
c[i][j]='o'; c[0][j]='='; c[N-1][j]='='; c[i][0]='|'; c[i][N-1]='|';
}
}
for(h=0; h<K-1; h++) {do {
k = rand() % leng+1;
if (k==1) {if(a<N-1 && a>1) {a = a-1;}
else {z = rand() % lengz+1;
if(z==1) a = a+1;
else if (z==2) {if(b<N-1 && b>1) b = b-1; else b = b+1;}
else if (z==3) {if(b<N-2) b = b+1; else b = b-1;}}}
else if (k==2) {if(a<N-2) {a = a+1;}
else {z = rand() % lengz+1;
if (z==1) a = a-1;
else if (z==2) {if(b<N-1 && b>1) b = b-1; else b = b+1;}
else if (z==3) {if(b<N-2) b = b+1; else b = b-1;}}}
else if (k==3) {if(b<N-1 && b>1) {b = b-1;}
else {z = rand() % lengz+1;
if (z==1) b = b+1;
else if (z==2) {if(a<N-1 && a>1) a = a-1; else a = a+1;}
else if (z==3) {if(a<N-2) a = a+1; else a = a-1;}}}
else if (k==4) {if(b<N-2) {b = b+1;}
else {z = rand() % lengz+1;
if (z==1) b = b-1;
else if (z==2) {if(a<N-1 && a>1) a = a-1; else a = a+1;}
else if (z==3) {if(a<N-2) a = a+1; else a = a-1;}}}
} while (c[a][b] == '*');
c[N/2][N/2] = '+';
c[a][b] = '*';
for ( i = 0; i < N; i++) {
for ( j = 0; j < N; j++) {
printf(" %c", c[i][j]);
}
printf("\n");
}
c[a][b] = '+';
}
printf("\n");
for (l=0; l<K; l++){
for (m=0; m<N; m++) {
k = rand() % leng+1;
for (p=0; p<N; p++) {
if (k==1) n = n+1;
else if (k==2) s = s+1;
else if (k==3) e = e+1;
else if (k==4) w = w+1;
}
}
n = n/N; s = s/N; e = e/N; w = w/N;
sum1 += n; sum2 += s; sum3 += e; sum4 += w;
}
sum1 = sum1/N; sum2 = sum2/N; sum3 = sum3/N; sum4 = sum4/N;
printf("La probabilità percentuale di spostamento verso Nord è: %.2lf\n", sum1);
printf("La probabilità percentuale di spostamento verso Sud è: %.2lf\n", sum2);
printf("La probabilità percentuale di spostamento verso Est è: %.2lf\n", sum3);
printf("La probabilità percentuale di spostamento verso West è: %.2lf\n", sum4);
return 0;
}