MrSpaceCow

Input Function

Jul 17th, 2017
82
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. public static void input(Vector2[] sects, bool isAI = false) {
  2.         byte temp = (byte)((turn == Turn.X) ? 1 : 2);
  3.         try {
  4.             switch(getSection(sects).state) {
  5.                 case States.Empty:
  6.                     getSection(sects).state = (turn == Turn.X) ? States.X : States.O;
  7.                     if(checkWin(dropASection(sects))) {
  8.                         getSection(dropASection(sects)).state = (turn == Turn.X) ? States.X : States.O;
  9.                     }
  10.                     if(checkTie(dropASection(sects)))
  11.                         getSection(dropASection(sects)).state = States.Empty;
  12.                     lastMoveLayer = sects.Length - 1;
  13.                     lastMoveSects = sects;
  14.                     turn = (Turn)(1 - (int)turn);
  15.                     highlighted = false;
  16.                     beingChallenged = false;
  17.                     sections[0, 0].metaData.lastMove = sects;
  18.                     sections[0, 0].metaData.isBeingChallenged = false;
  19.                     visualsManager.updateSection(temp, sects);
  20.                     InputHandler.currentLayer = 0;
  21.  
  22.                     if(turn == AITurn && isAIEnabled)
  23.                         gameManager.StartCoroutineAsync(executeAITurn(AITurn));
  24.                     else if(isSimulation && isAIEnabled)
  25.                         gameManager.StartCoroutineAsync(executeAITurn((AITurn == Turn.X) ? Turn.O : Turn.X));
  26.  
  27.                     return;
  28.                 case States.O:
  29.                     if(sects.SequenceEqual(lastMoveSects)) {
  30.                         if(!highlighted && !isAI) {
  31.                             highlighted = true;
  32.                             visualsManager.updateSection(3, sects);
  33.                         } else {
  34.                             turn = (Turn)(1 - (int)turn);
  35.                             sections[0, 0].metaData.lastMove = sects;
  36.                             sections[0, 0].metaData.isBeingChallenged = true;
  37.                             challenge(sects);
  38.                             visualsManager.updateSection(4, sects);
  39.  
  40.                             //aiManager.AITurn = Turn.O;
  41.                             //printVectors(aiManager.findBestMove());
  42.  
  43.                             if(turn == AITurn && isAIEnabled)
  44.                                 gameManager.StartCoroutineAsync(executeAITurn(Turn.X));
  45.                             else if(isSimulation && isAIEnabled)
  46.                                 gameManager.StartCoroutineAsync(executeAITurn((AITurn == Turn.X) ? Turn.O : Turn.X));
  47.                         }
  48.                     }
  49.                     return;
  50.                 case States.X:
  51.                     if(sects.SequenceEqual(lastMoveSects)) {
  52.                         if(!highlighted && !isAI) {
  53.                             highlighted = true;
  54.                             visualsManager.updateSection(3, sects);
  55.                         } else {
  56.                             turn = (Turn)(1 - (int)turn);
  57.                             sections[0, 0].metaData.lastMove = sects;
  58.                             sections[0, 0].metaData.isBeingChallenged = true;
  59.                             challenge(sects);
  60.                             visualsManager.updateSection(4, sects);
  61.  
  62.                             //aiManager.AITurn = Turn.X;
  63.                             //printVectors(aiManager.findBestMove());
  64.  
  65.                             if(turn == AITurn && isAIEnabled)
  66.                                 gameManager.StartCoroutineAsync(executeAITurn(Turn.X));
  67.                             else if(isSimulation && isAIEnabled)
  68.                                 gameManager.StartCoroutineAsync(executeAITurn((AITurn == Turn.X) ? Turn.O : Turn.X));
  69.                         }
  70.                     }
  71.                     return;
  72.                 case States.Board:
  73.                     visualsManager.updateSection(5, sects);
  74.                     return;
  75.             }
  76.             visualsManager.updateSection(0, sects);
  77.         } catch(IndexOutOfRangeException e) {
  78.             Debug.Log(e);
  79.             visualsManager.updateSection(0, sects);
  80.         }
  81.     }
RAW Paste Data