Lab 4 Part c

Next up is the design of the doors mechanism. Let’s refresh ourselves on the basics of how that is meant to work with a GitHub issue to “implement doors mechanism”:

We need to manage the doors involved in the game. There are two possibilities in terms of structuring this: We can have each door be an object, or we can have the collection of doors be the object. With the former approach, we implement some basic logic about the doors in isolation to everything else, but we'll need another class to manage to collection of all doors together. With the latter, we'll be packing too much logic into this class.

We'll opt for the first approach. We will have a `Door` class, which represents the idea of a door. Then the Game class will be responsible for managing the overall gameplay.

- There are two pieces of information we need to store for a door: Whether it is a winning door or not, and whether it is currently open or not. We will hold both as booleans.
- A door should start closed, and we should have a method for opening it.
- We should have methods to test if a door is a winning door or a losing door.
- We should also have methods for setting the win/lose status of the door.

Make sure to add the “doors” label to this issue, and to add it to our milestone.