Exemple #1
0
 private static void NumberNotHappenedDecrement(IRouletteSession rouletteSessionForm)
 {
     foreach (NumberModel number in rouletteSessionForm.AllRouletteNumbers)
     {
         number.NotHappened--;
     }
 }
Exemple #2
0
        public static RoundModel EnterNumber(byte digit, RoundModel round, IRouletteSession rouletteSessionForm, ISessionStart sessionStartForm)
        {
            round.WinningNumber = digit;
            round.CalibrateBetUnit(round.Spin, rouletteSessionForm, sessionStartForm, digit);
            round.CalibrateMoney(digit, rouletteSessionForm);
            round.ExpectedNumbers = NumberLogic.GetExpectedNumbers(rouletteSessionForm, round);

            return(round);
        }
Exemple #3
0
        public YouWonForm(UserModel user, IRouletteSession rouletteSessFrm)
        {
            InitializeComponent();

            CurrentUser = user;

            rouletteSessionForm = rouletteSessFrm;

            congratzUserLabel.Text = $"Congratulations {user.Username}!";
        }
Exemple #4
0
        private static float CalculateGlobalAverageGap(IRouletteSession rouletteSessionForm)
        {
            List <float> allNumberGaps = new List <float>();

            foreach (var number in rouletteSessionForm.AllRouletteNumbers)
            {
                allNumberGaps.Add(number.AverageGap);
            }

            return(allNumberGaps.Average());
        }
Exemple #5
0
        private void BuySubAndOpenRouletteNeo(UserModel user, IRouletteSession rouletteSessFrm)
        {
            user.BoughtSub = true;

            SQLiteDataAccess.UpdateUserSubscription(currentUser);

            rouletteSessFrm = new RouletteSessionForm(user);
            this.Hide();
            previousRouletteSession.Close();
            rouletteSessFrm.ShowDialog();
            this.Close();
        }
Exemple #6
0
        private static int CalculateHappenedAverage(IRouletteSession rouletteSessionForm)
        {
            int        happenedAVG;
            List <int> happenedList = new List <int>();

            foreach (var number in rouletteSessionForm.AllRouletteNumbers)
            {
                happenedList.Add(number.Happened);
            }

            happenedAVG = Convert.ToInt32(Math.Round(happenedList.Average(), MidpointRounding.AwayFromZero));

            return(happenedAVG);
        }
Exemple #7
0
        public static void ResetProgress(IRouletteSession rouletteSessionForm)
        {
            rouletteSessionForm.AllRounds.Clear();
            rouletteSessionForm.Goal            = 0;
            rouletteSessionForm.StartingMoney   = 0;
            rouletteSessionForm.StartingBetUnit = 0;

            foreach (NumberModel number in rouletteSessionForm.AllRouletteNumbers)
            {
                number.Happened    = 0;
                number.NotHappened = 0;
                number.AverageGap  = 0;
                number.NotHappenedList.Clear();
            }
        }
Exemple #8
0
        public BuySubForm(UserModel user, IRouletteSession rouletteSessFrm)
        {
            InitializeComponent();

            currentUser = user;

            previousRouletteSession = rouletteSessFrm;

            Button[] allButtons = { oneMonthButton, sixMonthButton, yearButton };

            foreach (Button button in allButtons)
            {
                button.Click += Button_Click;
            }
        }
Exemple #9
0
        public static List <int> GetExpectedNumbers(IRouletteSession rouletteSessionForm, RoundModel round)
        {
            int notHappenedDistance = 8;    // CHANGEABLE PARAMETER. Represents how far is Number's NotHappened value from the Number's AverageGap value.

            List <int> expectedNumbers  = new List <int>();
            List <int> happenedList     = new List <int>();
            float      globalAverageGap = CalculateGlobalAverageGap(rouletteSessionForm);
            double     happenedAVG      = CalculateHappenedAverage(rouletteSessionForm);

            foreach (var number in rouletteSessionForm.AllRouletteNumbers)
            {
                if (number.Happened == happenedAVG)
                {
                    happenedList.Add(number.Digit);
                }



                if (number.NotHappened >= (globalAverageGap - notHappenedDistance) && number.NotHappened <= (globalAverageGap + notHappenedDistance))
                {
                    if (happenedList.Contains(number.Digit))
                    {
                        if (!expectedNumbers.Contains(number.Digit))
                        {
                            expectedNumbers.Add(number.Digit);
                        }
                    }
                }



                if (number.NotHappened >= (number.AverageGap - notHappenedDistance) && number.NotHappened <= (number.AverageGap + notHappenedDistance))
                {
                    if (happenedList.Contains(number.Digit))
                    {
                        if (!expectedNumbers.Contains(number.Digit))
                        {
                            expectedNumbers.Add(number.Digit);
                        }
                    }
                }
            }

            return(expectedNumbers);
        }
Exemple #10
0
        public static void UpdateNumberProperties(byte digit, IRouletteSession rouletteSessionForm)
        {
            NumberModel number = rouletteSessionForm.AllRouletteNumbers[digit];

            if (number.NotHappened > 0)
            {
                if (number.NotHappenedList != null)
                {
                    number.NotHappenedList.Add(number.NotHappened);
                    number.AverageGap = (float)number.NotHappenedList.Average();
                }
                else
                {
                    number.AverageGap = number.NotHappened;
                }
            }

            NumberNotHappenedIncrement(rouletteSessionForm);
            number.NotHappened = 0;
            number.Happened++;
        }
        public static RoundModel CalibrateMoney(this RoundModel round, byte digit, IRouletteSession rouletteSessionForm)
        {
            if (round.Spin > rouletteSessionForm.SessionStart)
            {
                if (rouletteSessionForm.AllRounds.Last().Money > 0)
                {
                    round.Money = rouletteSessionForm.AllRounds.Last().Money;
                }
                else
                {
                    round.Money = rouletteSessionForm.StartingMoney;
                }

                if (rouletteSessionForm.AllRounds.Last().ExpectedNumbers.Contains(digit))
                {
                    round.Money += (36 * rouletteSessionForm.AllRounds.Last().BetUnit);
                }

                round.Money -= (rouletteSessionForm.AllRounds.Last().ExpectedNumbers.Count *rouletteSessionForm.AllRounds.Last().BetUnit);
            }

            return(round);
        }
Exemple #12
0
        public static void UndoNumberProperties(int?latestNumber, IRouletteSession rouletteSessionForm)
        {
            foreach (NumberModel number in rouletteSessionForm.AllRouletteNumbers)
            {
                if (number.Digit == latestNumber)
                {
                    NumberNotHappenedDecrement(rouletteSessionForm);

                    if (number.NotHappenedList.Count > 0)
                    {
                        number.NotHappened = number.NotHappenedList.Last();
                        number.NotHappenedList.RemoveAt(number.NotHappenedList.Count - 1);

                        if (number.NotHappenedList.Count > 0)
                        {
                            number.AverageGap = (float)number.NotHappenedList.Average();
                        }
                        else
                        {
                            number.AverageGap = 0;
                        }
                    }
                    else
                    {
                        number.NotHappened = 0;
                    }



                    if (number.Happened > 0)
                    {
                        number.Happened--;
                    }
                }
            }
        }
Exemple #13
0
        public static void CheckIfUserHasWon(RoundModel round, UserModel currentUser, IRouletteSession rouletteSessionForm, IUserWon userWonForm)
        {
            if (round.Spin > rouletteSessionForm.SessionStart)
            {
                if (round.Money >= rouletteSessionForm.Goal)
                {
                    currentUser.Won = true;

                    userWonForm = new YouWonForm(currentUser, rouletteSessionForm);
                    userWonForm.ShowDialog();
                    rouletteSessionForm.Close();

                    SQLiteDataAccess.UpdateUserWon(currentUser);
                }
            }
        }
        public static RoundModel CalibrateBetUnit(this RoundModel round, int spin, IRouletteSession rouletteSess, ISessionStart sessionStart, byte winningNumber)
        {
            if (round.Spin == rouletteSess.SessionStart)
            {
                sessionStart = new SessionStartForm();
                sessionStart.ShowDialog();

                rouletteSess.StartingMoney   = sessionStart.StartMoney;
                rouletteSess.StartingBetUnit = sessionStart.BetUnit;

                rouletteSess.Goal = rouletteSess.StartingMoney + rouletteSess.StartingBetUnit * 50;
                round.Money       = rouletteSess.StartingMoney;
                round.BetUnit     = rouletteSess.StartingBetUnit;
            }

            if (round.Spin >= rouletteSess.SessionStart)
            {
                if (rouletteSess.AllRounds.Last().Money > 0)
                {
                    round.Money = rouletteSess.AllRounds.Last().Money;
                }
                else
                {
                    round.Money = rouletteSess.StartingMoney;
                }



                if (rouletteSess.AllRounds.Last().BetUnit > 0)
                {
                    round.BetUnit = rouletteSess.AllRounds.Last().BetUnit;
                }
                else
                {
                    round.BetUnit = rouletteSess.StartingBetUnit;
                }


                CalibrateMoney(round, winningNumber, rouletteSess);
                decimal playingCost = NumberLogic.GetExpectedNumbers(rouletteSess, round).Count *round.BetUnit;



                if (round.Money - playingCost >= rouletteSess.StartingMoney - (rouletteSess.StartingBetUnit * 50))
                {
                    round.BetUnit = rouletteSess.StartingBetUnit;
                }

                if (round.Money - playingCost <= rouletteSess.StartingMoney - (rouletteSess.StartingBetUnit * 50))
                {
                    round.BetUnit = rouletteSess.StartingBetUnit * 2;
                }

                if (round.Money - playingCost <= rouletteSess.StartingMoney - (rouletteSess.StartingBetUnit * 150) && round.Money > rouletteSess.StartingMoney - (rouletteSess.StartingBetUnit * 350))
                {
                    round.BetUnit = rouletteSess.StartingBetUnit * 4;
                }

                if (round.Money - playingCost <= rouletteSess.StartingMoney - (rouletteSess.StartingBetUnit * 350) && round.Money > rouletteSess.StartingMoney - (rouletteSess.StartingBetUnit * 750))
                {
                    round.BetUnit = rouletteSess.StartingBetUnit * 8;
                }

                if (round.Money - playingCost <= rouletteSess.StartingMoney - (rouletteSess.StartingBetUnit * 750))
                {
                    round.BetUnit = rouletteSess.StartingBetUnit * 16;
                }
            }

            return(round);
        }