code: def build_random(self, num_seeds=4, perc_land=40, perc_sea=30, perc_blocked=30):
          
          rnge = math.floor(num_seeds/2)
          # self.show_grid_stats()
          seeds = [[randint(0,self.grd.grid_height-1), randint(0,self.grd.grid_width-1)] for _ in range(rnge) for _ in range(rnge)]
          for seed in seeds:
              self.expand_seed(seed, (self.grd.grid_height * self.grd.grid_width)/(perc_sea),  TERRAIN_LAND)
          
          self.refresh_stats()
          #   print(self.show_grid_stats())
          expand = 1
          old_land = self.tot_land
          while (100*self.tot_land)/self.tot_pix < perc_land - 1:
              expand +=1
              
              self.denoise_grid(TERRAIN_LAND, expand)
              self.refresh_stats()
              #  print(expand, self.show_grid_stats())
              if old_land == self.tot_land:   # no extra expansion, so add another seed
                  self.expand_seed(self.add_new_seed(), 50, TERRAIN_LAND)
              else:
                  old_land = self.tot_land
          self.add_blocks(perc_blocked)
          self.refresh_stats()
docs: generates a random world with appropriate percentages
          of land/sea or blocked (cannot pass).
          Start with all sea, pick 3 seed points and grow land there
          until it hits land percentage + perc_blocked.
          Then pick 7 seed points and grow narrow block points until 
          that hits perc_blocked.