codice:
void Stampa( Griglia& g) {
 cout << "\n\n";
  cout << "--------------------\n|";
  for (int indice=0;indice < 200;++indice){//arriva fino a 400 perchè la matrice è 20x20
    bool ultimo = ( (indice%10) == 9);//come detto prima ultimo è 19 se ho 20 colonne, indice%20 fa la divisione con il resto tra indice e 20
    g[indice].LeggiB()?cout << "B":cout << " "; 
    g[indice].LeggiA()?cout << "A":cout << " ";//stampa O
    if (ultimo){
      if (indice !=199)
        {cout << "|\n|";}
      else
        {cout << "|\n";}
        }
   }
 cout << "--------------------\n";
}
int main () {
  Griglia griglia(20,20) ;
  griglia.Genera();
 srand(time(0));
  for (int i=0; i < 100;++i){
    griglia.ImpostaB((rand()>>2) %200);
    griglia.ImpostaA((rand()>>2) %200);
  }
 while (1){
    Stampa(griglia);   
    griglia.Cicla();   
    griglia.Verifica();
   cin.get();
  }
  return 0;
}


scusate ma non bastavano i caratteri, h
o modificato un programma trovato sul web che si chiama Il gioco della vita che forse alcuni di voi conosceranno.
Ora, come prima cosa vorrei avere una conferma, ovvero se la funzione "Genera", genera effettivamente gli 8 vicini di una determinata casella nelle 8 posizioni: indice-colonne-1,indice-colonne, indice-colonne+1, indice-1, indice+1, indice+colonne+1, indice+colonne, indice+colonne-1.

Poi il problema più grande per me, sta nel fatto che vorrei creare un terzo stato, pienoC, il quale sia in grado di muoversi nella griglia seguendo un certo criterio, per esempio quello di controllare se la casella sotto di lui sia vuota e in caso positivo trasferircisi. Al di la della creazione delle varie funzioni NasciC MuoriC ecc ecc non capisco come posso nominargli la casella che ha sotto.
potete aiutarmi? Se ho sbagliato qualcosa nella pubblicazione di questo post perdonatemi ma è la prima volta che scrivo su un forum di programmazione.

Grazie