Rif: [C] Matrici e percorsi
Ti ringrazio per la risposta, Lory! Perņ il mio problema sta nel riempire con i + solo le posizioni occupate precedentemente dall'asterisco, non tutte :/
Ho provato nuovamente, e ora ho K tabelle NxN e l'asterisco che pare muoversi in maniera corretta:
include<stdio.h>
#include<stdlib.h>
#include<time.h>
#define N 8
#define K 5
int main(void){
char a[N][N];
int i, j, numero, g, d,
posx=(N-1)/2,
posy=(N-1)/2;
srand(time(NULL));
while (g<K){
for(i = 0; i < N; i++)
for(j = 0; j < N; j++)
{a[i][j]=' ';
a[i][0]='|';
a[i][N-2]='|';
a[i][N-1]='\n';
a[posx][posy]='*';}
for(d=1; d<N; d++) printf("=");
printf("\n");
for(i = 0; i < N; i++){
for(j = 0; j < N; j++)
printf("%c", a[i][j]);}
for(d=1; d<N; d++) printf("=");
printf("\n");
numero=(rand()%4);
switch (numero) {
case 0: posx++; break;
case 1: posx--; break;
case 2: posy++; break;
case 3: posy--; break;}
if(posx<=0) posx++;
if(posx>=(N-1)) posx--;
if (posy<=0) posy++;
if (posy>=(N-2)) posy--;
g++;}
return 0;}
Ma non capisco come far memorizzare le posizioni precedenti.
Ho tentato scrivendo
if (g>0) a[posx][posy]='+';
b[i][j]+=a[i][j];
e stampando b, ma deve aver sommato i caratteri char, stampando cose improbabili...
|