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