public BetResultRepresentation(BetResult betResult) { BetResult = betResult; BetRepresentation = new BetRepresentation(betResult.Bet); IsSidi = !betResult.IsBarrani && betResult.IsSidi; IsBarrani = betResult.IsBarrani; }
public async Task <IActionResult> PutBetAsync(PutBetModel model) { //输赢结果 var result = 1; //输赢金额 decimal amount = 0; Random random = new Random(DateTime.Now.Millisecond); var npc = random.Next(0, 3); //生成订单号 var orderNumber = Guid.NewGuid().ToString(); //记录投注结果 //投注时间 - 提交的玩法 - 金额- 结果 - 随机订单号 System.DateTime currentTime = DateTime.Now; var betResult = new BetResult() { Createtime = currentTime, PlayerBet = model.BetInput, PcBet = npc.ToString(), Amount = amount, ResultAmount = amount, OrderNumber = orderNumber, Coin = model.Coin, Result = result }; //加入数据库 //_context.betResult.Add(betResult); return(Ok(betResult)); }
public IHttpActionResult Get() { var database = 1; var matches = BetResult.GetBetResult(database); return(Ok(matches)); }
private void SingleCycle_OnBetCompleted(BetResult result) { if (Count > 0) { Betting(); Count--; } }
private void MultiBet_OnBetCompleted(BetResult result) { if (Count > 0) { MBetting(); Count--; } }
public static string BetResultToLocalizedString(BetResult betResult) { var dm = new DataManager(); var localizedStrings = dm.GetLocalizedStrings(LocalizationManager.Language); var localBetResult = localizedStrings.Single(ls => ls.Key.AfterFirst("_") == "BetResult_" + betResult.EnumToString()).Value; return(localBetResult); }
public TacticHolder(ITactic tactic, string id) { Tactic = tactic; Balance = 1000; State = State.Idle; LastBet = new BetResult(true, new Bet(true, 0)); Wins = 0; Losses = 0; ID = id; }
/// <summary> /// 下注 /// </summary> /// <param name="periodNo">期号</param> /// <param name="rule">玩法枚举</param> /// <param name="number">下注号码</param> /// <param name="money">单个号码金额</param> public void Bet(long periodNo, Pk10Rule rule, string number, decimal money) { LotteryData lotteryData = GetLotteryData(); PrintLog($"{Environment.NewLine}即将下注,账户余额:¥ [{lotteryData.Balance}], 玩法: [{rule.GetAttributeValue()}],号码: [{number}], 下注金额: {money}."); string url = $"bet/bet.do?_t={DateTime.UtcNow.Ticks}"; // 构建表单参数 var betParam = new BetParam(periodNo, rule, number, money); var postBodyBuilder = new StringBuilder(); postBodyBuilder.Append($"gameId={betParam.GameId}&turnNum={betParam.TurnNum}&totalNums={betParam.TotalNums}"); postBodyBuilder.Append($"&totalMoney={betParam.TotalMoney}&betSrc={betParam.BetSrc}"); for (int idx = 0; idx < betParam.BetBeanList.Count; idx++) { var bean = betParam.BetBeanList[idx]; postBodyBuilder.Append($"&betBean[{idx}].playId={bean.PlayId}&betBean[{idx}].money={bean.Money}"); } // 提交投注 try { BetResult result = _restHelper.Post <BetResult>(url, postBodyBuilder.ToString()); if (!result.Success) { if (result.Msg.Contains("该账号在异地登陆")) { LoginTimeout = true; throw new ArgumentException("该账号在异地登陆, 请重试!"); } else { throw new ArgumentException($"{result.Msg}, 状态码: {result.Code}."); } } else { PrintLog($"下注成功, 当前账户余额: {lotteryData.Balance}"); } } catch (Exception ex) { throw ex; } }
public void ProcessBetAction(BetAction betAction) { if (BetResult != null) { var msg = "Inconsistency: Once the Bet phase is over no BetAction can be processed!"; Log.Error(msg); throw new InvalidOperationException(msg); } BetActionList.Add(betAction); BetResult = GetBetResult(); if (BetResult == null && betAction.PlayerInfo == CurrentPlayer) { CurrentPlayer = PlayerGroup.GetNextPlayer(CurrentPlayer.PlayerId); } }
public async void StartBet(MultiBetData bet) { PlaceAutomatedBetsResponse result = await DiceWebAPI.PlaceAutomatedBetsAsync(bet.Session, bet.MultiBetSettings); if (result.Success) { betResult.BetCount++; if (result.TotalPayOut == 0) { decimal baseBet; if (result.BetCount > 1) { baseBet = result.PayIns[result.BetCount - 1] <= result.PayIns[result.BetCount - 2] ? 2 * result.PayIns[result.BetCount - 1] : 2 * result.PayIns[result.BetCount - 2]; } else { baseBet = 2 * result.PayIns[result.BetCount - 1]; } SingleBetCycle singlBet = new SingleBetCycle(); SingleBetData sBet = bet.GetSingleData(baseBet); singlBet.OnNoMoney += SinglBet_OnNoMoney; BetResult singlResult = null; singlBet.StartBet(sBet); betResult.BetCount = result.BetCount + singlResult.BetCount; betResult.Profit = result.TotalPayOut + result.TotalPayIn + singlResult.Profit; } else { betResult.BetCount = result.BetCount; betResult.Profit = result.TotalPayOut + result.TotalPayIn; OnBetCompleted?.Invoke(betResult); } } else { if (result.InsufficientFunds) { OnNoMoney?.Invoke(bet.Session.AccountId, bet.Currency); Thread.Sleep(20000); } } }
public async Task <Response> CloseRoulette(string id) { List <Bet> betList = null; List <UserBetResult> userBetResults = null; Roulette roulette = null; byte WinnerNumber = 0; Response response = new Response(); BetResult betResult = null; roulette = await Context.GetRoulette(id); response = ValidateForCloseRoulette(roulette); if (!response.Successfull) { return(response); } betList = await Context.GetBetsFromRoulette(id); if (betList == null || betList.Count <= 0) { return(new Response(false, "ERROR: There is not any bet on this roulette!", null)); } WinnerNumber = NumbersUtil.RandomByte(36); userBetResults = ConvertToUserBetResults(WinnerNumber, betList); response = await PerformRouletteClosingOnDB(roulette); if (!response.Successfull) { return(new Response(false, "ERROR: Could not close roulette!", null)); } betResult = new BetResult() { BetsPerformed = betList, UsersBetResults = userBetResults, WinnerNumberAndColor = $"{BetUtils.GetBetColorFromByte(WinnerNumber)} {WinnerNumber}", }; return(new Response(true, $"Roulette was closed successfully", betResult)); }
void Flip(TacticHolder tactic) { //Do not continue if they're broke or disqualified. if (tactic.State == State.Broke || tactic.State == State.Disqualified) { return; } //Ask the tactic to place a bet. Bet bet = tactic.Tactic.Bet(tactic.LastBet, tactic.Balance); //If the bet's amount is higher than their balance, disqualify them. if (bet.Amount > tactic.Balance) { tactic.State = State.Disqualified; return; } //Generate a result from the bet. BetResult result = new BetResult(bet.IsHeads == (new Random().Next(1, 3) == 1), bet); tactic.LastBet = result; //If they've won, add a win and give them money. if (result.HadWon) { tactic.Wins++; tactic.Balance += bet.Amount; } //If they've lost, add a loss and take their money. else { tactic.Losses++; tactic.Balance -= bet.Amount; } }
public async void StartBet(SingleBetData bet) { var betResult = new BetResult(); while (true) { var result = await DiceWebAPI.PlaceBetAsync(bet.Session, bet.PayIn, bet.GessLow, bet.GessHigh, bet.ClientSeed, bet.Currency); if (result.Success) { betResult.BetCount++; if (result.PayOut > 0) { betResult.Profit += result.PayOut - bet.PayIn; OnBetCompleted?.Invoke(betResult); break; } else { betResult.Profit -= bet.PayIn; if (betResult.BetCount % bet.Repit == 0 && betResult.BetCount != 0) { bet.PayIn = bet.PayIn * 2; } CalcPercent(betResult.BetCount, bet); } } else { if (result.InsufficientFunds) { OnNoMoney?.Invoke(bet.Session.AccountId, bet.Currency); Thread.Sleep(20000); } } } }
public MatchInfoBuilder Result(BetResult result) { _matchInfo._result = result; return(this); }
internal HitResult(BetResult betResult, BeforeHitParams beforeHitParams) { _betResult = betResult; _beforeHitParams = beforeHitParams; }
public MultiBetCycle() { betResult = new BetResult(); }
public static string ToString(BetResult betRes) { return(strToBetRes.First(keyValue => keyValue.Value == betRes).Key); }
public static bool TryParse(string input, out BetResult res) { Contract.Requires(!String.IsNullOrEmpty(input)); return(strToBetRes.TryGetValue(input, out res)); }