Exemplo n.º 1
0
        /// <summary>
        /// Winnningses the over loosings.
        /// </summary>
        /// <param name="stock">The stock.</param>
        /// <returns></returns>
        private double WinningsOverLoosings(StockExchange stock)
        {
            var netEarnings = stock.Earnings != 0 ? (stock.Earnings - stock.TransactionCost) : 0;
            var reward      = 0.0;

            if (netEarnings > 0)
            {
                Winnings.Enqueue(netEarnings);
            }
            else
            {
                Loosings.Enqueue(netEarnings);
            }

            var totalWinnings = Winnings.ToList().Sum();
            var totalLoosings = Math.Abs(Loosings.ToList().Sum());

            if (totalLoosings > 0)
            {
                reward = totalWinnings / totalLoosings;
            }
            else
            {
                reward = totalWinnings;
            }

            return(Math.Round(reward, 2));
        }
        public ActionResult Get([DataSourceRequest] DataSourceRequest request, int year)
        {
            List <Winnings> winnings = new List <Winnings>();

            var memberWinnings = from mw in db.MemberWinnings
                                 where mw.Event.EventEnd.Year == year
                                 group mw by new { mw.MemberId, mw.WinningTypeId } into grp
                select new
            {
                MemberId = grp.Key.MemberId,
                TypeId   = grp.Key.WinningTypeId,
                Data     = grp.Sum(mw => mw.Amount),
            };

            var ordered = memberWinnings.OrderBy(x => x.MemberId).ToList();

            foreach (var mw in ordered)
            {
                // See if the current member winning (mw) has an entry in the list
                Winnings member = winnings.Where(w => w.MemberId == mw.MemberId).FirstOrDefault();
                if (member == null)
                {
                    var m = db.Members.Find(mw.MemberId);

                    member          = new Winnings();
                    member.MemberId = mw.MemberId;
                    member.Member   = new Members()
                    {
                        Firstname = m.Firstname,
                        Lastname  = m.Lastname,
                        MemberId  = m.MemberId
                    };

                    winnings.Add(member);
                }

                switch (mw.TypeId)
                {
                case 1:     // Tournament
                    member.Tournament = mw.Data;
                    break;

                case 2:         // Side Games
                    member.SideGame = mw.Data;
                    break;

                default:
                    break;
                }
            }

            return(Json(winnings.AsQueryable().ToDataSourceResult(request), JsonRequestBehavior.AllowGet));
        }
Exemplo n.º 3
0
        static void Main(string[] args)
        {
            //Enter game
            var player = new Player();

            player.DepositAmount = GameHelper.StartGame();

            //Initialize components
            Random random    = new Random();
            var    game      = new SlotGame();
            var    display   = new Display();
            var    winnings  = new Winnings();
            var    stats     = new Stats();
            var    winAmount = 0m;

            //Select stake and spin
            while (player.DepositAmount > 0m)
            {
                Console.WriteLine(Constants.STAKE_AMOUNT_TEXT);
                var stake = Convert.ToDecimal(Console.ReadLine());
                stake = Math.Round(stake, Constants.DECIMAL_PRECISION);
                player.StakeAmount = GameHelper.TakeBetByPlayer(player, stake);

                //Roll symbols
                GameHelper.Spin(random, game, display);
                GameHelper.ShowSymbolsResultOnDisplay(display);

                //Collect all winnigs per line
                winnings.FirstLine  = PaymentService.AmountWonPerLine(display.FirstLine, player);
                winnings.SecondLine = PaymentService.AmountWonPerLine(display.SecondLine, player);
                winnings.ThirdLine  = PaymentService.AmountWonPerLine(display.ThirdLine, player);
                winnings.FourthLine = PaymentService.AmountWonPerLine(display.FourthLine, player);
                winAmount           = Math.Round(winnings.CollectAllWinnings(), Constants.DECIMAL_PRECISION);
                GameHelper.ResetReels(display);
                stats.WinAmount = winAmount;

                //Display stats at current stage
                stats.TotalBalance   = GameHelper.TotalBalance(player.DepositAmount, player.StakeAmount, winAmount);
                player.DepositAmount = stats.TotalBalance;
                player.DepositAmount = Math.Round(player.DepositAmount, Constants.DECIMAL_PRECISION);
                Console.WriteLine(string.Format(Constants.WIN_TEXT, stats.WinAmount));
                Console.WriteLine(string.Format(Constants.CURRENT_BALANCE_TEXT, player.DepositAmount));
            }
            Console.WriteLine(Constants.INSERT_CREDIT_TEXT);
        }