Пример #1
0
    public static void Skip()
    {
        switch (receiveMode)
        {
        case situation.select:
            selectFlag  = true;
            receiveMode = situation.attackselect;
            break;

        case situation.move:
            selectFlag  = true;
            receiveMode = situation.attackselect;
            var(i3, j3) = DataBase.selectMove;
            GameObject obj1 = DataBase.objs[i3, j3];
            gameManage.FlashControl(obj1, false);
            break;

        case situation.attackselect:
            attackFlag  = true;
            receiveMode = situation.select;
            break;

        case situation.attack:
            attackFlag  = true;
            receiveMode = situation.select;
            var(i4, j4) = DataBase.attackSelect;
            GameObject obj2 = DataBase.objs[i4, j4];
            gameManage.AttackFlash(obj2, false);
            break;

        default:
            break;
        }
    }
Пример #2
0
/*        public SeyanaVoice(Dictionary<situation, string> dict)
 *      {
 *          init(dict);
 *      } */

        private void playSE(situation s)
        {
            if (!isPlaying)
            {
                Task.Factory.StartNew(() => playSE_run(s));
            }
        }
Пример #3
0
 public situation AnalyzeCase(situation sit, int to)
 {
     if (_board[sit.y, sit.x] == to)
     {
         sit.consecutive += 1;
     }
     else if (_board[sit.y, sit.x] == 0 && sit.consecutive > 0)
     {
         sit.opened     += 1;
         sit.score      += calcul_score(sit);
         sit.consecutive = 0;
         sit.opened      = 0;
     }
     else if (_board[sit.y, sit.x] == 0)
     {
         sit.opened = 1;
     }
     else if (sit.consecutive > 0)
     {
         sit.score      += calcul_score(sit);
         sit.consecutive = 0;
         sit.opened      = 0;
     }
     else
     {
         sit.opened = 0;
     }
     return(sit);
 }
Пример #4
0
 private void Start()
 {
     state       = new Free();
     receiveMode = situation.select;
     turn        = false;
     aiPlaying   = false;
 }
Пример #5
0
 public situation end_line(situation sit)
 {
     if (sit.consecutive > 0)
     {
         sit.score += calcul_score(sit);
     }
     sit.opened      = 0;
     sit.consecutive = 0;
     return(sit);
 }
Пример #6
0
        public situation init_situation()
        {
            situation sit = new situation();

            sit.x           = 0;
            sit.y           = 0;
            sit.consecutive = 0;
            sit.opened      = 0;
            sit.score       = 0;
            return(sit);
        }
    public override bool Equals(object obj)
    {
        bool      result;
        situation s = obj as situation;

        if (situation != null)
        {
            result = Terminal.Equals(s.Terminal) && Pos == s.Pos;
        }

        return(result);
    }
Пример #8
0
        public int AnalyzeVertical(int to)
        {
            situation sit = init_situation();

            sit.x = -1;
            sit.y = -1;

            while (++sit.x < _width)
            {
                while (++sit.y < _height)
                {
                    sit = AnalyzeCase(sit, to);
                }
                sit.y = -1;
                sit   = end_line(sit);
            }
            return(sit.score);
        }
Пример #9
0
        public int AnalyzeRightDiagonal(int to)
        {
            situation sit = init_situation();

            sit.y = _height - 1;
            sit.x = _width - 1;
            int tmp;

            while (sit.y >= 0)
            {
                tmp = sit.y;
                while (sit.x >= 0 && sit.y < _height)
                {
                    sit    = AnalyzeCase(sit, to);
                    sit.x -= 1;
                    sit.y += 1;
                }
                sit   = end_line(sit);
                sit.x = _width;
                sit.y = tmp - 1;
            }

            sit.x = _width - 2;
            sit.y = 0;
            while (sit.x >= 0)
            {
                tmp = sit.x;
                while (sit.y < _height && sit.x >= 0)
                {
                    sit    = AnalyzeCase(sit, to);
                    sit.x -= 1;
                    sit.y += 1;
                }
                sit   = end_line(sit);
                sit.x = tmp - 1;
                sit.y = 0;
            }
            return(sit.score);
        }
Пример #10
0
    private void OnCollisionEnter2D(Collision2D collision)
    {
        if (collision.gameObject.tag != "situation" && collision.gameObject.tag != "player")
        {
            return;
        }

        if (collision.gameObject.tag == "player")
        {
            CurrentSit = collision.gameObject.GetComponent <situation>();
            playersit();
        }

        else if (CurrentSit != collision.gameObject.GetComponent <situation>())
        {
            CurrentSit = collision.gameObject.GetComponent <situation>();

            sortOutSit();
        }

        interactText.gameObject.transform.gameObject.SetActive(true);
        canInteract = true;
    }
Пример #11
0
 private void playSE_run(situation s)
 {
     isPlaying = true;
     sps[s].PlaySync();
     isPlaying = false;
 }
Пример #12
0
        public int calcul_score(situation sit)
        {
            if (sit.opened == 0 && sit.consecutive < 5)
            {
                return(0);
            }
            switch (sit.consecutive)
            {
            case 4:
                switch (sit.opened)
                {
                case 1:
                    if (current_turn)
                    {
                        return(1000000);
                    }
                    return(50);

                case 2:
                    if (current_turn)
                    {
                        return(1000000);
                    }
                    return(5000);
                }
                return(0);

            case 3:
                switch (sit.opened)
                {
                case 1:
                    if (current_turn)
                    {
                        return(7);
                    }
                    return(5);

                case 2:
                    if (current_turn)
                    {
                        return(10000);
                    }
                    return(50);
                }
                return(0);

            case 2:
                switch (sit.opened)
                {
                case 1:
                    return(2);

                case 2:
                    return(5);
                }
                return(0);

            case 1:
                switch (sit.opened)
                {
                case 1:
                    return(1);

                case 2:
                    return(2);
                }
                return(0);

            default:
                return(2000000);
            }
        }