It is important to be clear on object-oriented programming, specifically on inheritance and polymorphism. This is because we'll be creating generic functions that can be applied to a number of board game decisions, and then we'll be writing specific sub-classes that inherit and further specify these functions.