예제 #1
0
파일: Game.cs 프로젝트: TomaT3/DartCounter
        public DartStatus AddPointsToCurrentPlayer(Multiplikator multiplikator, int field, out Player nextPlayer)
        {
            var  currentPoints = CurrentPlayer.GetCurrentPoints();
            Dart dart          = new Dart(multiplikator, field);
            var  thrownPoints  = dart.Points;

            var dartStatus = CheckThrownPoints(currentPoints, dart);

            switch (dartStatus)
            {
            case DartStatus.Ok:
                var roundStatus = AddPointsToCurrentPlayer(dart);
                if (roundStatus == RoundStatus.Completed)
                {
                    SetNextPlayer();
                }
                break;

            case DartStatus.OverThrown:
            case DartStatus.NoValidCheckOut:
            case DartStatus.NoCheckOutPossible:
                CurrentPlayer.InvalidateCurrentRound();
                SetNextPlayer();
                break;

            case DartStatus.CheckedOut:
                AddPointsToCurrentPlayer(dart);
                break;
            }

            nextPlayer = CurrentPlayer;
            return(dartStatus);
        }
예제 #2
0
        public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
        {
            Multiplikator multiplikatorParameter = (Multiplikator)parameter;

            if (value is Multiplikator buttonValue)
            {
                if (buttonValue == multiplikatorParameter)
                {
                    return(Color.Green);
                }
            }

            return(Color.Default);
        }
예제 #3
0
        public static int GetPoints(Multiplikator multiplikator, int field)
        {
            if (field >= 0)
            {
                switch (multiplikator)
                {
                case Multiplikator.Single:
                    return(field);

                case Multiplikator.Double:
                    return(2 * field);

                case Multiplikator.Triple:
                    return(3 * field);
                }
            }

            return(0);
        }
예제 #4
0
 public Dart(Multiplikator multiplikator, int field)
 {
     Multiplikator = multiplikator;
     Field         = field;
 }