# Room
Rooms are a feature ubiquitous in NetHack. A room is an area, usually rectangular, that is separated from other areas by walls and is typically paved with floor terrain. 
The Dungeons of Doom consist mostly of "room-and-corridor" levels, containing a number of rooms connected by corridors. Some rooms contain stairs, which connect different levels to each other. They also may contain dungeon features, monsters, objects, and traps, or may be turned into a special room.

      ------       --------        -------
     #......#######|.......########+.....|                ------    -------
     #|....|      #|.....&lt;|        |&gt;....|              ##.....|    |.....|
     #|.....#     #|......|        |.....|                |....|   #+.....|
     #|....|#     #|......|        ---.-.-               #+....|   #|.....|
     #------#     #|......|           # #              ###----|-   #|.....|
     # #    #     #---.----           # ###            #    ####   #-------
     #      #     #########           ### #          ###     # #   ####
     #      #           #               # #####      #     ### ###    #
     #      #           #              -.-----+----###     #     #    #
     #      ###         #              |..........|#       ########   #
     #        #         #              |...........#      ------.-.---#
-----#        ###    #  #              |..........|       |...........#
|....#          # ------.----          ------------       |..........|
|...|           ##+.........|                             |..........|
|...|             |..........################             ------------
-----             |.........|                               #
 #                |.........|
                  -----------

Contents

1 Generation

1.1 Lit rooms

2 Strategy
3 References

Generation
This section covers only typical non-special, room-and-corridor levels in the Dungeons of Doom. Rooms also appear in special levels and certain Quest filler levels, but those typically do not have the random generation described below.
On each level, a number of rooms will be generated, and then they will be connected up by corridors and doors. The algorithm for placing rooms makes it difficult to predict how many rooms a level will contain, but most levels contain between 5 and 10 rooms, with occasional appearances of levels with as few as 4 or as many as 12. On these levels, one room may be selected to become a special room.
Vaults are a special case: they do not count as a special room despite technically being one, and they are not connected to the rest of the level by corridors.

The following information pertains to an upcoming version (NetHack 3.7.0). If this version is now released, please verify that it is still accurate, then update the page to incorporate this information.

Each level will also generate up to two themed rooms, which can be irregularly shaped or contain interesting contents and terrain.
There tends to be a fixed rather than area-based chance of generating dungeon features, monsters, objects, and traps in each non-special room. Therefore, a level with more rooms will contain more of these things.

Lit rooms
Rooms generate either as lit or unlit, meaning that every square in a room will be lit up or dark. The chance of a room being lit depends solely on the level difficulty, with fewer lit rooms deeper into the dungeon:[1]
Level 9 or above: 
Level 10 or below: 

Strategy
Finding rooms is not always straightforward. If you see no obvious way forward, common tactics include:

Be persistent in searching. If you can identify a large unexplored area of the map, more rooms may be hidden there. Search along the edges of this area, especially the walls of known rooms. Failing that, be aware that rooms can be as small as 2x3 and hence tucked into places you would not expect them.
Try using the terrain command to show the map without monsters or objects - the stairs may be hidden under a monster or object.
Use magic mapping.
Fall down a pit or hole to go to a lower level, then explore back up.
References

↑ src/sp_lev.c in NetHack 3.6.6, line 1154