Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public static void input(Vector2[] sects, bool isAI = false) {
- byte temp = (byte)((turn == Turn.X) ? 1 : 2);
- try {
- switch(getSection(sects).state) {
- case States.Empty:
- getSection(sects).state = (turn == Turn.X) ? States.X : States.O;
- if(checkWin(dropASection(sects))) {
- getSection(dropASection(sects)).state = (turn == Turn.X) ? States.X : States.O;
- }
- if(checkTie(dropASection(sects)))
- getSection(dropASection(sects)).state = States.Empty;
- lastMoveLayer = sects.Length - 1;
- lastMoveSects = sects;
- turn = (Turn)(1 - (int)turn);
- highlighted = false;
- beingChallenged = false;
- sections[0, 0].metaData.lastMove = sects;
- sections[0, 0].metaData.isBeingChallenged = false;
- visualsManager.updateSection(temp, sects);
- InputHandler.currentLayer = 0;
- if(turn == AITurn && isAIEnabled)
- gameManager.StartCoroutineAsync(executeAITurn(AITurn));
- else if(isSimulation && isAIEnabled)
- gameManager.StartCoroutineAsync(executeAITurn((AITurn == Turn.X) ? Turn.O : Turn.X));
- return;
- case States.O:
- if(sects.SequenceEqual(lastMoveSects)) {
- if(!highlighted && !isAI) {
- highlighted = true;
- visualsManager.updateSection(3, sects);
- } else {
- turn = (Turn)(1 - (int)turn);
- sections[0, 0].metaData.lastMove = sects;
- sections[0, 0].metaData.isBeingChallenged = true;
- challenge(sects);
- visualsManager.updateSection(4, sects);
- //aiManager.AITurn = Turn.O;
- //printVectors(aiManager.findBestMove());
- if(turn == AITurn && isAIEnabled)
- gameManager.StartCoroutineAsync(executeAITurn(Turn.X));
- else if(isSimulation && isAIEnabled)
- gameManager.StartCoroutineAsync(executeAITurn((AITurn == Turn.X) ? Turn.O : Turn.X));
- }
- }
- return;
- case States.X:
- if(sects.SequenceEqual(lastMoveSects)) {
- if(!highlighted && !isAI) {
- highlighted = true;
- visualsManager.updateSection(3, sects);
- } else {
- turn = (Turn)(1 - (int)turn);
- sections[0, 0].metaData.lastMove = sects;
- sections[0, 0].metaData.isBeingChallenged = true;
- challenge(sects);
- visualsManager.updateSection(4, sects);
- //aiManager.AITurn = Turn.X;
- //printVectors(aiManager.findBestMove());
- if(turn == AITurn && isAIEnabled)
- gameManager.StartCoroutineAsync(executeAITurn(Turn.X));
- else if(isSimulation && isAIEnabled)
- gameManager.StartCoroutineAsync(executeAITurn((AITurn == Turn.X) ? Turn.O : Turn.X));
- }
- }
- return;
- case States.Board:
- visualsManager.updateSection(5, sects);
- return;
- }
- visualsManager.updateSection(0, sects);
- } catch(IndexOutOfRangeException e) {
- Debug.Log(e);
- visualsManager.updateSection(0, sects);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement