Hello friends, my mind is blowing up in flames. I can't understand how recursion works in this certainly case( this is part of 'Learn to program' of Chris Pine ): M = 'land' o = 'water' world = [ [o,o,o,o,o,M,o,o,o,o,o], [o,o,o,o,M,M,o,o,o,o,o], [o,o,o,o,o,M,o,o,M,M,o], [o,o,o,M,o,M,o,o,o,M,o], [o,o,o,o,o,M,M,o,o,o,o], [o,o,o,o,M,M,M,M,o,o,o], [M,M,M,M,M,M,M,M,M,M,M], [o,o,o,M,M,o,M,M,M,o,o], [o,o,o,o,o,o,M,M,o,o,o], [o,M,o,o,o,M,M,o,o,o,o], [o,o,o,o,o,M,o,o,o,o,o]] def continent_size world, x ,y if x < 0 or x > 10 or y < 0 or y > 10 return 0 end if world[y][x] != 'land' return 0 end size = 1 world [y][x] = 'counted land' size = size + continent_size(world, x-1, y-1) size = size + continent_size(world, x , y-1) size = size + continent_size(world, x+1, y-1) size = size + continent_size(world, x-1, y ) size = size + continent_size(world, x+1, y ) size = size + continent_size(world, x-1, y+1) size = size + continent_size(world, x , y+1) size = size + continent_size(world, x+1, y+1) size end puts continent_size(world, 5, 5) #result is 32 I can't figure out how the program "counts" the M's, can't understand in what part size = size + a_number( guess it must be 1(?). I guess this is not easy to explain, by the way if you can give me a hand I'll take it! Thanks for your time. -- Posted via http://www.ruby-forum.com/.