private static void NumberNotHappenedDecrement(IRouletteSession rouletteSessionForm) { foreach (NumberModel number in rouletteSessionForm.AllRouletteNumbers) { number.NotHappened--; } }
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); }
public YouWonForm(UserModel user, IRouletteSession rouletteSessFrm) { InitializeComponent(); CurrentUser = user; rouletteSessionForm = rouletteSessFrm; congratzUserLabel.Text = $"Congratulations {user.Username}!"; }
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()); }
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(); }
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); }
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(); } }
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; } }
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); }
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); }
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--; } } } }
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); }