You just need to keep track of where you are - at it's simplest, an X and Y offset from a known origin. Direction and encoder clicks will tell you how your current x & y are changing, i.e. dead reckoning. An array of coordinates tells you where the other rooms are so you simply need to drive so that you move to the desired location. If you have to avoid obstacles, you will continue to update your position as you drive around them and then recalculate your course to the destination. You'll probably need to have intermediate waypoints along the routes between rooms to ensure that you go through doorways rather than blindly drive through "walls".