Exemplo n.º 1
0
 private void tmrSimulation_Tick(object sender, EventArgs e)
 {
     if (simthread != null)
     {
         if (!simthread.IsAlive)
         {
             tmrSimulation.Enabled = false;
             lblSimRun.ForeColor = Color.Green;
             lblSimRun.Text = "Simulation Completed";
             lastsim = tempsim;
         }
     }
 }
Exemplo n.º 2
0
        void runsim()
        {
            double dMultiplier = Multiplier;
            double WinMultiplier = this.WinMultiplier;
            double startMultiplier = Multiplier;
            int numbets = (int)nudSimNumBets.Value;
            int bets = 1;
            int wins = 0;
            int losses = 0;
            int winstreak = 0;
            int losstreak = 0;
            int largestwinstreak = 0;
            int largestlostreak = 0;
            int MaxMultiplies = this.MaxMultiplies;
            double devider = this.Devider;
            double WinDevider = this.WinDevider;
            double devidercounter = this.Devidecounter;
            double balance = (double)nudSimBalance.Value;
            double lastbet = MinBet;
            double minbet = MinBet;
            double chance = Chance;
            double profit = 0;
            double currentprofit = this.currentprofit;
            string chars = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ._";
            string server = "";

            for (int i = 0; i < 64; i++)
            {
                server += (chars[rand.Next(0, chars.Length)]);
            }
            string client = "";
            for (int i = 0; i < 24; i++)
            {
                client += rand.Next(0, 10).ToString();
            }

            string sserver = "";
            foreach (byte b in server)
            {
                sserver += Convert.ToChar(b);
            }

            tempsim = new Simulation(balance.ToString("0.00000000"), bets.ToString(), sserver, client);
            while (bets <= numbets)
            {
                //string columns = "Bet Number,LuckyNumber,Chance,Roll,Result,Wagered,Profit,Balance,Total Profit";
                string betstring = bets+",";
                double number = getlucky(server, client, bets);
                betstring += number.ToString() + ","+Chance.ToString()+",";
                bool win = false;
                if (high)
                    betstring += ">" + (100 - chance) + ",";
                else
                    betstring += "<" + chance+",";
                if (high && number > 100 - chance)
                {
                    win = true;
                }
                else if (!high && number < chance)
                {
                    win = true;
                }

                if (win)
                {
                    betstring += "win,";
                    if (rdbWinMaxMultiplier.Checked && winstreak >= WinMaxMultiplies)
                    {
                       WinMultiplier = 1;
                    }
                    else if (rdbWinDevider.Checked && winstreak % WinDevidecounter == 0 && winstreak > 0)
                    {
                        WinMultiplier *= WinDevider;
                    }
                    else if (rdbWinReduce.Checked && winstreak == WinDevidecounter && winstreak > 0)
                    {
                        WinMultiplier *= WinDevider;
                    }
                    if (winstreak == 0)
                    {
                        currentprofit = 0;
                    }
                    profit += (lastbet * 99 / chance) - lastbet;
                    betstring += lastbet + ",";
                    betstring += (lastbet * 99 / chance) - lastbet + ",";
                    balance += (lastbet * 99 / chance) - lastbet;
                    currentprofit += (lastbet*(99/Chance))-lastbet;
                        Lastbet *= WinMultiplier;
                        if (winstreak == 0)
                        {
                            lastbet = minbet;
                        }

                    wins++;
                    winstreak++;
                    if (chkResetBetWins.Checked && winstreak % nudResetWins.Value == 0)
                    {
                        lastbet = minbet;
                    }
                    if (chkChangeWinStreak.Checked && (winstreak == nudChangeWinStreak.Value))
                    {
                        lastbet = (double)nudChangeWinStreakTo.Value;
                    }
                    if (chkChangeChanceWin.Checked && (winstreak == nudChangeChanceWinStreak.Value))
                    {

                            chance = (double)nudChangeChanceWinTo.Value;

                    }
                    if (largestwinstreak < winstreak)
                        largestwinstreak = winstreak;
                    if (losstreak != 0)
                    {
                        try
                        {
                            chance = Chance;
                        }
                        catch
                        {

                        }
                    }
                    losstreak = 0;
                    dMultiplier = startMultiplier;

                    //lastbet = minbet;
                    dMultiplier = startMultiplier;
                    if (chkReverse.Checked && rdbReverseWins.Checked && winstreak % reversebets == 0)
                        high = !high;

                }
                else
                {
                    betstring += "lose,";
                    losses++;
                    losstreak++;
                    if (largestlostreak < losstreak)
                        largestlostreak = losstreak;
                    winstreak = 0;
                    betstring += lastbet + ",";
                    betstring += - lastbet + ",";
                    profit -= lastbet;
                    balance -= lastbet;
                    if (rdbMaxMultiplier.Checked && losstreak == MaxMultiplies)
                    {
                        dMultiplier = 1;
                    }
                    if (rdbDevider.Checked && losstreak % devidercounter == 0)
                    {
                        dMultiplier *= devider;
                    }
                    if (rdbReduce.Checked && losstreak == devidercounter)
                    {
                        dMultiplier *= devider;
                    }
                    if (chkChangeLoseStreak.Checked && (losstreak == nudChangeLoseStreak.Value))
                    {
                        lastbet = (double)nudChangeLoseStreakTo.Value;
                    }
                    if (chkChangeChanceLose.Checked && (losstreak == nudChangeChanceLoseStreak.Value))
                    {

                            chance = (double)nudChangeChanceLoseTo.Value;

                    }

                    lastbet *= dMultiplier;
                    if (lastbet > balance)
                        break;
                    if (chkReverse.Checked && rdbReverseLoss.Checked && losstreak % reversebets == 0)
                        high = !high;
                }
                betstring += balance + ",";
                betstring += profit;
                tempsim.bets.Add(betstring);
                bets++;
                if (bets % 1000 == 0)
                {
                    Updatetext(lblSimProgress, ((double)bets / (double)numbets * 100.00).ToString("00.00")+"%");
                }
                if (bets % 10000 == 0)
                {
                    using (StreamWriter sw = File.AppendText(Environment.GetEnvironmentVariable("APPDATA") + "\\easydice2\\tempsim"))
                    {
                        foreach (string tmpbet in tempsim.bets)
                        {
                            sw.WriteLine(tmpbet);
                        }

                    }
                    tempsim.bets.Clear();
                }
                if (chkReverse.Checked && rdbReverseBets.Checked && bets % reversebets == 0)
                    high = !high;
            }

            Updatetext(lblSimLosses,losses.ToString());
            Updatetext(lblSimProfit, profit.ToString("0.00000000"));
            Updatetext(lblSimWins,wins.ToString());
            Updatetext(lblSimEndBalance, balance.ToString("0.00000000"));
            Updatetext(lblSimLoseStreak,largestlostreak.ToString());
            Updatetext(lblSimWinStreak,largestwinstreak.ToString());
            using (StreamWriter sw =  File.AppendText(Environment.GetEnvironmentVariable("APPDATA") + "\\easydice2\\tempsim"))
            {
                foreach (string tmpbet in tempsim.bets)
                {
                    sw.WriteLine(tmpbet);
                }
                tempsim.bets.Clear();
            }
            //return tempsim;
        }