Ejemplo n.º 1
0
        /// <summary>
        /// Berechnet die geworfene Punktzahl des aktuellen Wurfes anhand der getroffenen Zahl und dem getroffenen Feld.
        /// </summary>
        /// <param name="posX">X-Position der Maus</param>
        /// <param name="posY">Y-Position der Maus</param>
        /// <returns></returns>
        private int GetScore(int angle, int posX, int posY)
        {
            int score = 0;


            int          points = GetZone(angle);
            enumRingType Ring   = GetRing(posX, posY);

            switch (Ring)
            {
            case enumRingType.None:
                score = 0;
                break;

            case enumRingType.Single:
                score = points;
                break;

            case enumRingType.Double:
                score = points * 2;
                break;

            case enumRingType.Triple:
                score = points * 3;
                break;

            case enumRingType.SingleBull:
                score = 25;
                break;

            case enumRingType.DoubleBull:
                score = 50;
                break;
            }
            return(score);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// This Utilities region shows all the private procedures used in
        /// the Control Eventhandlers, Methods and Properties.
        /// </summary>
        #region Utilities

        /// <summary>
        /// Calculates the thrown score based on the X and Y coordinates
        /// </summary>
        /// <param name="posX"></param>
        /// <param name="posY"></param>
        /// <returns></returns>
        private int GetScore(int posX, int posY)
        {
            try
            {
                int intScore = 0;

                double dblHoekInRadians = System.Math.Atan2(posY, posX);
                double dblHoekInGraden  = dblHoekInRadians * 180 / System.Math.PI;

                int intHoek = (int)dblHoekInGraden;
                if (intHoek < 0)
                {
                    intHoek = 180 + (intHoek + 180);
                }

                int          intNummer = GetNumber(intHoek);
                enumRingType enmRing   = GetRing(posX, posY);
                mIsNoScore = false;
                mIsSingle  = false;
                mIsDouble  = false;
                mIsTriple  = false;

                switch (enmRing)
                {
                case enumRingType.None:
                    mstrScoreText = "-";
                    intScore      = 0;
                    mIsNoScore    = true;
                    break;

                case enumRingType.Single:
                    mstrScoreText = "S" + intNummer.ToString();
                    intScore      = intNummer;
                    mIsSingle     = true;
                    break;

                case enumRingType.Double:
                    mstrScoreText = "D" + intNummer.ToString();
                    intScore      = intNummer * 2;
                    mIsDouble     = true;
                    break;

                case enumRingType.Triple:
                    mstrScoreText = "T" + intNummer.ToString();
                    intScore      = intNummer * 3;
                    mIsTriple     = true;
                    break;

                case enumRingType.SingleBullsEye:
                    mstrScoreText = "SingleBull";
                    intScore      = 25;
                    mIsSingle     = true;
                    break;

                case enumRingType.DoubleBullsEye:
                    mstrScoreText = "DoubleBull";
                    intScore      = 50;
                    mIsDouble     = true;
                    break;
                }

                return(intScore);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }