That is pretty nice idea.

Have you already made a mapmaking algorithm? I could think of a few choices which you can use:

Modified Perlin Noise Algorithm: http://freespace.virgin.net/hugo.eli...s/m_perlin.htm
With Perlin Noise Algorithm you could easily generate sort of heightmap image which you the use to determine the disposition for diferent parts of map (brighter the collor higher the desposition is).
Now the problem with original Perlin Noise Algorithm is that usig it it would probably generate you multiple areas with disposition for throne room. That is why I recomed you modify it in a way so that you generate its first octave yourself making sure only one point reaches the maximum disposition and only one point having minumum disposition (starting point). I can help you with this since I have a working Perlin Noise Algorithm somewhere that I reimplemented myself so I can make necessary changes t it.

In secoond idea for map generating approach I would use something like this (map is basically a cell grid):
First make some sort of list (open list) in which you will store map cels that still need to be processed.
Then make another list (closed list) to store already processed map cells.
Then use something like this:
//Placing starting position
1. randomly place your starting point somewhere on the map (asigning it X,Y position)
2. then add all four neighboring cels to an open list
//By using brach out system iterate through whole map assigning disposition values
3. now randomly chose one of the cels from open list and asign new dispositon value to it
4. add all neighboring map cells to the open list
5. move the cell from open list to closed list
6. repeat steps from 3 to 5 untill your open list has no more items (you have processed whole map)
//Making connections to neighboring cells
7. read first cell from open list
8. check the disposition value of each of neighboring cells to see if there can be valid path connection to them
9. repeat untill you have processed all map cells
If you don't want all gird cells to be part of map you can go and randomly remove some of them before your begin making room connections.
Main advantage of this algorithm is that you can actually have different map cells which are actually neighbors but don't have direct path between them (one cell is in the canyon and nother is on the canyon ridge for instance).

Now which ever algorithm you will use you probably don't wanna have multiple throne rooms so you have to make sure of that.
Also acording to your disposition list you may end up with lots of Castle grounds, Castle entrances, Towers and Castle Halls which can be on the other side of the map than the castle hall is. In order to avoid this I would use next rule:
- if cell with disposition of 9 can connect to Throne hall only by passing cells with disposition of 6 or higer then it is Castle hall else it is City hall
- if cell with disposition of 8 can connect to Throne hall it is Tower else it is City market district
- if cell with disposition of 7 can connect to Throne hall it is Castle entrance else it is City edge
- if cell with disposition of 6 can connect to Throne hall it is Castle grounds else it is vilage
Using this rule you make sure that all castle parts are connected to each other. It also gives you ability to have multiple towns and vilages on your map which would make your game even more interesting since you get more different room types.

If you have any further questions about implementing of each of theese aproaches (whichever you chose) feel free to ask. I will help you best as I can.