Salve ragazzi, mi son iscritto a questo forum perchè ho un problema con l'ultima parte del mio progetto, la parte e:
Dopo aver sviluppato un algoritmo per la simulazione di dinamica di cellule, considerando un array
2D 80x80, una cellula può essere bianca o nera. Una cellula bianca viene visualizzata con uno spazio (blank ‘ ‘), una cellula nera con ‘X’. All’inizio vi è solo una cellula nera, al centro della prima riga; tutte le altre cellule sono bianche. Sviluppare un algoritmo iterativo che, a partire dalla prima riga, a ogni passo aggiorna una sola riga dell’array, ovvero al secondo passo aggiorna la
seconda riga, al terzo passo aggiorna la terza riga e così via, fino all’ultima riga. Al passo
i-simo, la riga i-sima viene aggiornata considerando solo la riga (i-1)-sima, secondo la
seguente regola:
la cellula j della riga i-sima diventa nera se
a. nella riga (i-1)-sima la cellula j e la cellula j-1 sono nere e la cellula j+1 è
bianca;
b. nella riga (i-1)-sima la cellula j-1 è nera e le cellule j e j+1 sono bianche;
c. nella riga (i-1)-sima la cellula j e la cellula j+1 sono nere e la cellula j-1 è
bianca;
d. nella riga (i-1)-sima la cellula j+1 è nera e le cellule j e j-1 sono bianche;
e. la cellula j della riga i-sima diventa nera se nella riga (i-1)-sima la cellula j o la cellula j-1 o la cellula j+1 sono nere;
void simulazionecellule(char cellule[80][80])
{
int i=0;
int j=0;
int r=80;
int c=80;
char nera='X';
char bianca=' ';
for(i=0;i<r;i++)
{
for(j=0;j<c;j++)
{
cellule[i][j]=bianca;
}
}
// solo la cellula a metà della prima riga è nera
cellule[0][c/2]=nera;
//inizio dalla prima riga
for(i=0;i<r;i++)
{
for(j=0;j<c;j++)
{
if(i!=0 && (j!=0 || j!=c) )
{
//sono in una cella che può essere analizzata,
//cioè che mi permette di controllare la riga precedente e le colonne precedenti e seguenti della cella di riferimento
if(cellule[i-1][j]==nera && cellule[i-1][j-1]==nera && cellule[i-1][j+1]==bianca) //condizione a
{
cellule[i][j]=nera;
}
if(cellule[i-1][j]==bianca && cellule[i-1][j-1]==nera && cellule[i-1][j+1]==bianca) //condizione b
{
cellule[i][j]=nera;
}
if(cellule[i-1][j]==nera && cellule[i-1][j-1]==bianca && cellule[i-1][j+1]==nera) //condizione c
{
cellule[i][j]=nera;
}
if(cellule[i-1][j]==bianca && cellule[i-1][j-1]==bianca && cellule[i-1][j+1]==nera) //condizione d
{
cellule[i][j]=nera;
}
}//if
}//for su j
if(i==3 || i==7 || i==15 || i==31 || i==63 || i==79)//se sono ai passi indicati da stampare
{
//stampo a video l'array
stampacellule(cellule);
}
} //for su i
}// fine function simulazionecellule
ora dovrei implementare il punto e, qualcuno può darmi qualche dritta? grazie mille in anticipo.