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); }
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); }