public void PerformMove(Game game, GameState gameState) { if (moveBlock == null || gameView == null) { throw new NotImplementedException("Real player interface is not set up correctly."); } gameView.AwaitPlayerInput(); moveBlock.WaitOne(); // Wait for view to handle the input and do the move for you. }