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