heavily modified program design to use a centralized Rules class where many game rules can be customized