Ejemplo n.º 1
0
    public int GetSum(SumDirection direction)
    {
        int sum    = 0;
        int index1 = 0;
        int index2 = 1;
        int index3 = 2;

        switch (direction)
        {
        case SumDirection.Row1:
            break;

        case SumDirection.Row2:
            index1 = 3;
            index2 = 4;
            index3 = 5;
            break;

        case SumDirection.Row3:
            index1 = 6;
            index2 = 7;
            index3 = 8;
            break;

        case SumDirection.LeftUp2RightDown:
            index1 = 0;
            index2 = 4;
            index3 = 8;
            break;

        case SumDirection.Col1:
            index1 = 0;
            index2 = 3;
            index3 = 6;
            break;

        case SumDirection.Col2:
            index1 = 1;
            index2 = 4;
            index3 = 7;
            break;

        case SumDirection.Col3:
            index1 = 2;
            index2 = 5;
            index3 = 8;
            break;

        case SumDirection.LeftDown2RightUp:
            index1 = 2;
            index2 = 4;
            index3 = 6;
            break;

        default:
            break;
        }
        sum = data[index1].Key + data[index2].Key + data[index3].Key;
        return(sum);
    }
Ejemplo n.º 2
0
    public void OnDirectionClick(Button btn)
    {
        if (enable && _model.MeetMaxNum())
        {
            Audioplayer.PlayDirection();
            enable = false;
            SumDirection direction = View.GetSumDirection(btn);
            int          sum       = _model.GetSum(direction);
            int          score     = _model.GetScore(sum);

            if (sum == 6)
            {
                View.ShowMessage("<color=#D1FF00>Congratulation!Luck 6! </color>");
                View.ShowLuckySixEffect();
            }
            else
            {
                if (score > 1000)
                {
                    View.ShowMessage("<color=#D1FF00>Great!Greedy is Good!</color>");
                    View.ShowGreatEffect();
                }
                else
                {
                    View.ShowMessage("<color=#D1FF00>What a pity!Come on!</color>");
                }
            }


            View.SetCurScore(_playerInfo.CurAtt.Gold + score);
            View.HightLightScore(sum - 6);

            //show all
            for (int i = 0; i < LotPlayer.Count; i++)
            {
                int num = _model.ShowNumAtIndex(i);
                View.ShowNum(i, num.ToString());
            }

            StartCoroutine(TimeHelper.DelayExecuteMethod(() =>
            {
                _model.Refresh();
                View.InitByData(_playerInfo, _model);
                View.ShowCostPage(_model.GetCurrentTurnGameCost(false));
                View.HideLuckySixEffect();
                View.HideGreatEffect();
                enable = true;
            }, 4.0f));
        }
    }
        private static T[] GetSums <T>(T[,] matrix, SumDirection sumDirection, Func <T, T, T> add)
        {
            T[] sums = new T[matrix.GetLength(sumDirection == SumDirection.Column ? 1 : 0)];

            for (int i = 0; i < matrix.GetLength(sumDirection == SumDirection.Column ? 1 : 0); i++)
            {
                for (int j = 0; j < matrix.GetLength(sumDirection == SumDirection.Column ? 0 : 1); j++)
                {
                    if (sumDirection == SumDirection.Column)
                    {
                        sums[i] = add(sums[i], matrix[j, i]);
                    }
                    else
                    {
                        sums[i] = add(sums[i], matrix[i, j]);
                    }
                }
            }
            return(sums);
        }