def create_lakes(map, lake_count, size): for l in range(lake_count): cx = random.randint(0, map.array_width) cy = random.randint(0, map.array_height) nt = map.getTile(cx, cy) nt._terrain = models.map.terrains["water"] for i in range(size): nt = None while not nt: nx = random.randint(-2, 2) ny = random.randint(-2, 2) nt = map.getTile(cx + nx, cy + ny) nt._terrain = models.map.terrains["water"] nb = map.getNeighbors(cx, cy) for ne in nb: ne._terrain = models.map.terrains["water"] cx = nt.point.x cy = nt.point.y
def test_it_returns_a_list_of_neighbors(self): map = TileMap(10, 10) expected = [ map.getTile(2,3), map.getTile(3,3), map.getTile(4,3), map.getTile(2,4), map.getTile(4,4), map.getTile(2,5), map.getTile(3,5), map.getTile(4,5) ] neighbors = map.getNeighbors(3, 4) self.assertEqual(len(expected), len(neighbors), 'Lists should be the same size') for e in expected: self.assert_(e in neighbors, 'Expected item wasn\'t in neighbors list')
def test_get_tile_returns_none_if_outside_range(self): map = TileMap(10, 10) t = map.getTile(11, 11) self.assert_(t == None, 'No tile to return') t = map.getTile(-1, -1) self.assert_(t == None, 'No tile to return')
def test_it_can_access_tiles_and_tiles_are_for_the_correct_position(self): map = TileMap(10, 5) t = map.getTile(9, 4) self.assertEqual(t, map.tiles[4][9])