Lauda

Untitled

Apr 17th, 2013
156
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.44 KB | None | 0 0
  1. int GameOfLife::getNeighbourSum(unsigned int row, unsigned int col)
  2. {
  3.     int sum = 0;
  4.  
  5.     /*
  6.      Iteriranje po redovima i kolonoma
  7.      Stavljamo od -1 do 1 zato sto hocemo da se krecemo oko trenutne celije, tj. prilikom provjere da li je ziva ili mrtva
  8.      Kretanje vrsimo u uslovu posle provjere opsega i krecemo se po zadatim redovima i kolonama, s tim sto odmah provjeramo i
  9.      susjedne redove i kolone i sumiramo vrijednosti na osnovu zadatke memorijske lokacije
  10.      S tim sto na kraju moramo oduzeti samo tu celiju oko koje smo vrsili provjere jer nam ona nije potrebna.
  11.     */
  12.     for (int i=-1; i<=1; i++)
  13.         for (int j=-1; j<=1; j++)
  14.         {
  15.             /* PRINCIP:
  16.              Provjeravamo opseg, tj. provjeravamo da li pozicija koju ocitavamo izalazi iz matrice,
  17.              odnosno da li se njena adresa nalazi posle prvog clana i prije poslednjeg clana niza
  18.              U principu, nama za ovaj PULSAR i ne treba ta provjera, posto jedinice nisu ni blizu granica u datom slucaju
  19.              Dok za RANDOM bi vec trebalo provjeravati date ivice. Mada u principu mozda mi ne bismo ni primijetili tako te ivice
  20.              da je doslo do prekoracenja izvan ivica, zbog velicine samih karaktera
  21.             */
  22.             if ((((col+j) >= 0) && ((col+j) <= m_width)) && (((row+i) >= 0) && ((row+i) <= m_height)))
  23.             {
  24.                 sum += m_buffer[(row+i) * m_width + (col+j)];
  25.             }
  26.         }
  27.  
  28.         // Na kraju oduzimamo onu celiju oko koje smo radili provjere jer nam ona nije potrebna
  29.         sum -= m_buffer[row * m_width + col];
  30.     return sum;
  31. }
Advertisement
Add Comment
Please, Sign In to add comment