public bool Setup(string _cookie, int _multiplier, double _loss_margin, double _win_margin, double _percent_bet, BettingSystem _bettingSystem, double _stake, bool _slowMode, double _dryRunAmount) { dryRun = _dryRunAmount > 0; multiplier = _multiplier < min_multiplier ? min_multiplier : _multiplier; multiplier = _multiplier > max_multiplier ? max_multiplier : _multiplier; cookie = _cookie; if (dryRun) { Dry.SetAmount(_dryRunAmount); Dry.Run(_multiplier); } else { codeEvaler = new CodeEvaler(); codeEvaler.Run(); } loss_margin = _loss_margin; win_margin = _win_margin; percent_bet = _percent_bet; bettingSystem = _bettingSystem; slowMode = _slowMode; if (_stake == 0) { usePercentBet = true; Console.WriteLine("You're using '{8}' strategy with a multiplier of {0}, starting at {1:F8} BTC, a loss margin of {2:P0} or {3:F8} BTC, a win margin of {4:P0} or {5:F8} BTC and a minimum bet of {6:P2} or {7:F8} BTC.", multiplier, start, loss_margin, loss_margin * start, win_margin, (1 + win_margin) * start, percent_bet, percent_bet * money < min_bet ? min_bet : percent_bet * money, Enum.GetName(bettingSystem.GetType(), bettingSystem)); } else { usePercentBet = false; base_stake = _stake; Console.WriteLine("You're using '{7}' strategy with a multiplier of {0}, starting at {1:F8} BTC, a loss margin of {2:P0} or {3:F8} BTC, a win margin of {4:P0} or {5:F8} BTC and a minimum bet of {6:F8} BTC.", multiplier, start, loss_margin, loss_margin * start, win_margin, (1 + win_margin) * start, base_stake, Enum.GetName(bettingSystem.GetType(), bettingSystem)); } Console.Write("\nPress \"n\" to stop or any other key to continue: "); if (Console.ReadLine().ToLower() == "n") { Console.WriteLine(" Stopped game by user.\n"); return(false); } Think(); return(true); }
public BonusPairsAgent(int min_bet, int max_bet, double ev_cutoff, BettingSystem betting_system) { this.min_bet = min_bet; this.max_bet = max_bet; this.current_bet = max_bet; this.ev_cutoff = ev_cutoff; this.betting_system = betting_system; this.shoe = new Shoe(8); game_logger = new GameLogger(); InitializeRound(); }
public void UpdateBettingModeInstance(BettingSystem bettingMode) { if (bettingMode == BettingSystem.Martingale) _CurrentBettingModeInstance = new MartingaleBetting(); else if (bettingMode == BettingSystem.LastNumberBetting) _CurrentBettingModeInstance = new LastNumberBetting(); else if (bettingMode == BettingSystem.SingleStreakBetting) _CurrentBettingModeInstance = new SingleStreakBetting(); else if (bettingMode == BettingSystem.TendencyBetting) _CurrentBettingModeInstance = new TendencyBetting(); else if (bettingMode == BettingSystem.NumberNegligence) _CurrentBettingModeInstance = new NumberNegligenceBetting(); else if (bettingMode == BettingSystem.JustLastNumber) _CurrentBettingModeInstance = new JustLastNumberBetting(); }
static void MakeTestRun(int run_number, Random random, int targetRuns, double ev_cutoff, BettingSystem betting_system, ResetSystem reset) { Console.WriteLine(run_number + " - EV cutoff " + ev_cutoff + " " + betting_system); TextWriter deal_file = new StreamWriter(string.Format("expected{0}.txt", run_number)); TextWriter roll_file = new StreamWriter(string.Format("roll{0}.txt", run_number)); double pp_multiplier = 0; Rules rules = new Rules { Decks = 8, MinBet = 100, MaxBet = 20000, Splits = 3 }; //OptStrategy b = new OptStrategy(10000, ev_cutoff, pp_multiplier); BasicStrategy b = new BasicStrategy(20000, ev_cutoff, pp_multiplier, betting_system); Game game = new Game(rules, b, pp_multiplier, random); int start_roll = 20000 * 100; //game.PlayerMoney = 10000000; // 100000$ game.PlayerMoney = start_roll; double expected_money = (double)game.PlayerMoney; game.Bet = 100; // 1$ double lowest = TotalMoney(game), highest = TotalMoney(game); int runs = 0; double total_big_bet_ev = 0; double total_big_bet = 0; int num_big_bets = 0; int resets = 0; int reset_counter = 0; bool written_200k = false; while (true) { double total_money = TotalMoney(game); if (total_money < lowest) { lowest = total_money; } if (total_money > highest) { highest = total_money; } if (runs % 5000 == 0) { Console.WriteLine(runs + " " + (double)game.PlayerMoney / 100.0 + "$" + " pp: " + game.PartyPoints + " expected: " + expected_money / 100.0 + "$"); Console.WriteLine("lowest: " + (double)lowest + "$" + " highest: " + (double)highest + "$"); Console.WriteLine("Total: ${0}", game.PlayerMoney / 100.0); Console.WriteLine("Expected: ${0}", expected_money / 100.0); /*Console.WriteLine("Average big bet: {0:0.00} ({1:0.0000})", * (total_big_bet / 100.0) / num_big_bets, * (total_big_bet_ev / 100.0) / num_big_bets); * Console.WriteLine("Resets {0} ({1:0.000}%)", resets, resets / (double)runs); */ Console.WriteLine(); } if (game.PlayerMoney <= 0) { deal_file.WriteLine(expected_money / 100.0); roll_file.WriteLine(game.PlayerMoney / 100.0); Write200kResult(0); WriteFinalResult(0); break; } if (runs % 1000 == 0) { //file.WriteLine(string.Format("{0} {1} {2} {3} {4} {5}", runs, game.PlayerMoney / 100.0, game.PartyPoints, total_money, lowest, highest)); deal_file.WriteLine(expected_money / 100.0); roll_file.WriteLine(game.PlayerMoney / 100.0); if (runs >= targetRuns) { if (!written_200k) { Write200kResult(game.PlayerMoney / 100.0); written_200k = true; } if (game.PlayerMoney >= start_roll) { WriteFinalResult(game.PlayerMoney / 100.0); break; } } //if (game.party_points >= 20000) break; } if (reset_counter > 0) { reset_counter--; runs++; continue; } if (reset != null && reset.Reset(52 * game.Rules.Decks - game.Shoe.Count, b.ShoeEV())) { resets++; runs++; reset_counter = 1; game.ResetShoe(); continue; } b.CurrentRoll = game.PlayerMoney; Shoe shoe = new Shoe(8); shoe.Clear(); shoe.Add(game.Shoe); game.StartRound(); game.DealRound(); Card p1 = game.PlayerHandSet[0][0], p2 = game.PlayerHandSet[0][1], d = game.DealerHand[0]; shoe.Remove(p1); shoe.Remove(p2); shoe.Remove(d); BjEval.Eval.CacheDealerProbs(d.PointValue, shoe.ToArray()); double deal_ev = BjEval.Eval.DealEv( p1.PointValue, p2.PointValue, d.PointValue, shoe.ToArray(), game.Bet); //Console.WriteLine("EV: {0} {1} {2} {3} {4}", p1.PointValue, p2.PointValue, d.PointValue, shoe.CardCount, deal_ev); expected_money += deal_ev * game.Bet; if (game.Bet > 100) { total_big_bet += game.Bet; total_big_bet_ev += game.Bet * deal_ev; num_big_bets++; } runs++; } deal_file.Close(); roll_file.Close(); b.Stop(); }
public static void Main(string[] args) { Console.WriteLine("Welcome to the automatic freebitco.in multiplier.\nLet's begin ;-)\n"); int multiplier = 2; double loss_margin = 0.7f; double win_margin = 0.3f; double percent_bet = 0.01f; double stake = 0; bool slowMode = false; double dryRunAmount = 0; string cookie = ""; BettingSystem bettingSystem = BettingSystem.Martingale; try { if (args.Length > 0) { for (int i = 0; i < args.Length; i++) { switch (args[i]) { case "-x": if (i < args.Length - 1 && args[i + 1] != null) { multiplier = int.Parse(args[i + 1]); } break; case "-m": if (i < args.Length - 1 && args[i + 1] != null) { bettingSystem = (BettingSystem)int.Parse(args[i + 1]); } break; case "-l": if (i < args.Length - 1 && args[i + 1] != null) { loss_margin = double.Parse(args[i + 1]) / 100; } break; case "-w": if (i < args.Length - 1 && args[i + 1] != null) { win_margin = double.Parse(args[i + 1]) / 100; } break; case "-p": if (i < args.Length - 1 && args[i + 1] != null) { percent_bet = double.Parse(args[i + 1]) / 100; } break; case "-b": if (i < args.Length - 1 && args[i + 1] != null) { if (!double.TryParse(args[i + 1], out stake) && args[i + 1].ToLower() == "min") { stake = 0.00000001f; } } break; case "-s": slowMode = true; break; case "-d": if (i < args.Length - 1 && args[i + 1] != null) { dryRunAmount = double.Parse(args[i + 1]); } break; case "-c": if (i < args.Length - 1 && args[i + 1] != null) { cookie = args[i + 1]; } break; case "-h": Console.WriteLine("Use the following options:\n -c \"cookie\" [none]\t\tSet the cookie that needs to be used. Use double quotes to wrap the entire string and seperate values with a semicolon.\n -l Number [70]\t\tPercent of starting amount least to reach (loss).\n -w Number [30]\t\tPercent of profit most to reach (win).\n -b Number [0] or min\tSet the game's minimum bet. Use 'min' for 0.00000001 BTC. (Overrides any percent bet, -p).\n -p Number [1]\t\tSet the game's minimum bet based on percentage of total money.\n -m Number [1]\t\tSet the game's betting strategy. Use 1 For Martingale, 2 for Anti-Martingale, 3 for Fixed bet or 4 for Minimal bet.\n -d Number [0]\t\tSimulate the game (dry run).\n -s \t\t\tGo slowly, confirming each bet.\n -h \t\t\tShow this help."); return; } } } if (!CleverBet.Instance.Setup(cookie, multiplier, loss_margin, win_margin, percent_bet, bettingSystem, stake, slowMode, dryRunAmount)) { return; } Console.WriteLine(); Console.CancelKeyPress += Console_CancelKeyPress; while (CleverBet.Instance.CanBet()) { CleverBet.Instance.Bet(); CleverBet.Instance.Think(); } } catch (Exception ex) { Console.WriteLine("An error occured, {0}", ex.Message); } Console.WriteLine(CleverBet.Instance.GetResults()); }
public BasicStrategy(int max_bet, double ev_cutoff, double pp_multiplier, BettingSystem betting_system) : this(max_bet, ev_cutoff, pp_multiplier) { this.betting_system = betting_system; }
public bool Setup(string _cookie, int _multiplier, double _loss_margin, double _win_margin, double _percent_bet, BettingSystem _bettingSystem, double _stake, bool _slowMode, double _dryRunAmount) { dryRun = _dryRunAmount > 0; multiplier = _multiplier < min_multiplier ? min_multiplier : _multiplier; multiplier = _multiplier > max_multiplier ? max_multiplier : _multiplier; cookie = _cookie; if (dryRun) { Dry.SetAmount(_dryRunAmount); Dry.Run(_multiplier); } else { codeEvaler = new CodeEvaler(); codeEvaler.Run(); } loss_margin = _loss_margin; win_margin = _win_margin; percent_bet = _percent_bet; bettingSystem = _bettingSystem; slowMode = _slowMode; if (_stake == 0) { usePercentBet = true; Console.WriteLine("You're using '{8}' strategy with a multiplier of {0}, starting at {1:F8} BTC, a loss margin of {2:P0} or {3:F8} BTC, a win margin of {4:P0} or {5:F8} BTC and a minimum bet of {6:P2} or {7:F8} BTC.", multiplier, start, loss_margin, loss_margin * start, win_margin, (1 + win_margin) * start, percent_bet, percent_bet * money < min_bet ? min_bet : percent_bet * money, Enum.GetName(bettingSystem.GetType(), bettingSystem)); } else { usePercentBet = false; base_stake = _stake; Console.WriteLine("You're using '{7}' strategy with a multiplier of {0}, starting at {1:F8} BTC, a loss margin of {2:P0} or {3:F8} BTC, a win margin of {4:P0} or {5:F8} BTC and a minimum bet of {6:F8} BTC.", multiplier, start, loss_margin, loss_margin * start, win_margin, (1 + win_margin) * start, base_stake, Enum.GetName(bettingSystem.GetType(), bettingSystem)); } Console.Write("\nPress \"n\" to stop or any other key to continue: "); if (Console.ReadLine().ToLower() == "n") { Console.WriteLine(" Stopped game by user.\n"); return false; } Think(); return true; }