예제 #1
0
 private static void RunGame(IProcessor processor)
 {
     var finish = false;
     var result = processor.Process(GameAction.StartGame);
     while (!finish)
     {
         var action = GetUserAction();
         Console.Clear();
         result = processor.Process(action);
         switch (result)
         {
             case ProcessResult.None:
             case ProcessResult.RequestAction:
                 break;
             case ProcessResult.End:
                 finish = true;
                 break;
             case ProcessResult.RequestSubAction:
                 processor.ProcessSubAction(GetUserAction());
                 break;
             default:
                 throw new ArgumentOutOfRangeException(
                     "Unknown ProcessResult: " + result);
         }
     }
 }