static void Main(string[] args) { Adventure adventObj = Adventure.getInstance(); Controller controlObj = Controller.getInstance(); View viewObj = View.getInstance(); GameLogic logicObj = GameLogic.getInstance(); Rooms roomObj = Rooms.getInstance(); //Main game loop adventObj.PlayGame(adventObj, controlObj, viewObj, logicObj, roomObj); while (adventObj.playGameAgain) { viewObj.PlayAgain(); char playAgain = controlObj.GetPlayAgainInput(); while (logicObj.PlayAgainInputEvaluation(playAgain) == false) { viewObj.InvalidPlayAgainInput(); playAgain = controlObj.GetPlayAgainInput(); } logicObj.CheckPlayAgain(playAgain, adventObj, controlObj, viewObj, logicObj, roomObj); } }