Beispiel #1
0
        public int Compare(SibalaGame inputResult1, SibalaGame inputResult2)
        {
            if (inputResult1.Type == inputResult2.Type)
            {
                if (inputResult1.Type == SibalaType.NormalPoint && inputResult1.Value == inputResult2.Value)
                {
                    return(inputResult1.MaxDice - inputResult2.MaxDice);
                }

                if (inputResult1.Type == SibalaType.NormalPoint)
                {
                    return(inputResult1.Value - inputResult2.Value);
                }

                if (inputResult1.Type == SibalaType.OneColor)
                {
                    List <int> diceOrder = new List <int>()
                    {
                        2, 3, 5, 6, 4, 1
                    };
                    return(diceOrder.IndexOf(inputResult1.Value) - diceOrder.IndexOf(inputResult2.Value));
                }
            }

            return(inputResult1.Type - inputResult2.Type);
        }
        public int GetResult(SibalaGame x, SibalaGame y)
        {
            List <int> diceOrder = new List <int>()
            {
                2, 3, 5, 6, 4, 1
            };

            return(diceOrder.IndexOf(x.Point) - diceOrder.IndexOf(y.Point));
        }
 public int Compare(SibalaGame x, SibalaGame y)
 {
     if (IsSameType(x, y))
     {
         var comparerDictionary = new Dictionary <SibalaType, ISibalaComparer>()
         {
             { SibalaType.NormalPoint, new NormalPointComparer() },
             { SibalaType.OneColor, new OneColorComparer() },
             { SibalaType.NoPoint, new NoPointComparer() }
         };
         return(comparerDictionary[x.Type].GetResult(x, y));
     }
     else
     {
         return(x.Type - y.Type);
     }
     return(x.Type - y.Type);
 }
 public NormalPointResultHandler(SibalaGame sibalaGame)
 {
     _sibalaGame = sibalaGame;
 }
 public SameColorHandler(SibalaGame sibalaGame)
 {
     _sibalaGame = sibalaGame;
 }
 private bool IsSameType(SibalaGame inputResult1, SibalaGame inputResult2)
 {
     return(inputResult1.Type == inputResult2.Type);
 }