Discussione: [C] Matrici e percorsi
Visualizza messaggio singolo
Vecchio 22-03-2016, 22.09.38   #4
Hollala
Newbie
 
Registrato: 20-03-2016
Messaggi: 4
Hollala promette bene
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...
Hollala non č collegato   Rispondi citando