Пример #1
0
 public Ticket(string name, bool IsAutoGeneratingNumbers, LotteryNumbers numberSelected)
 {
     this.Name     = name;
     this.TicketNo = GeneratingTickeNo();
     this.IsAutoGeneratingNumbers = false;
     this.NumberSelected          = numberSelected;
 }
Пример #2
0
        public List <Ticket> SimulatedPurchase(int maxNumberOfTicket)
        {
            Ticket ticket = null;
            int    numOfTicketRemaining = maxNumberOfTicket;

            if (ConfigurationParameters.IsSimulatingWinners)
            {
                for (int i = 0; i < ConfigurationParameters.SimulatedWinners.Length; i++)
                {
                    string[] winnerBall = ConfigurationParameters.SimulatedWinners[i].Split(':');

                    int[] numbers = new int[1];
                    numbers[0] = Int32.Parse(winnerBall[1]);

                    LotteryNumbers lotteryNumber = new LotteryNumbers(numbers);
                    ticket = new Ticket(winnerBall[0].Trim(), false, lotteryNumber);
                    tickets.Add(ticket);
                }
                numOfTicketRemaining = maxNumberOfTicket - 3;
            }

            for (int i = 0; i < numOfTicketRemaining; i++)
            {
                ticket = new Ticket("Client" + i.ToString(), randomEngine);
                tickets.Add(ticket);
            }
            return(tickets);
        }
Пример #3
0
 public Ticket(string name, IRandomGenerator randomGenerator)
 {
     this.Name     = name;
     this.TicketNo = GeneratingTickeNo();
     this.IsAutoGeneratingNumbers = true;
     this.NumberSelected          = randomGenerator.GetLoterryBallsForEachTicket(); // For Sinalis lottery, only one ball can be chosen per ticket
 }
Пример #4
0
        public int[] Purchase(UserInput userInput)
        {
            Ticket ticket;

            if (userInput.IsAutoGeneratingBall)
            {
                ticket = new Ticket(userInput.Name, randomEngine);
            }
            else
            {
                int   number  = (userInput.NumberOfBallChosen != null) ? (int)userInput.NumberOfBallChosen : -1;
                int[] numbers = new int[1];
                numbers[0] = number;

                LotteryNumbers lotteryNumber = new LotteryNumbers(numbers);
                ticket = new Ticket(userInput.Name, false, lotteryNumber);
            }
            tickets.Add(ticket);
            return(ticket.NumberSelected.RegularNumbers);
        }
Пример #5
0
        public DrawResult Draw()
        {
            LotteryNumbers lotteryDrawNumbers;

            if (ConfigurationParameters.IsSimulatingWinners) // && TheNthDraw == 0) // default the three winners if simulation is used
            {
                int[] simulatedWinners = new int[3];
                foreach (Ticket ticket in tickets)
                {
                    if (ConfigurationParameters.SimulatedWinners[0].Contains(ticket.Name))
                    {
                        simulatedWinners[0] = ticket.NumberSelected.RegularNumbers[0];
                    }
                    else if (ConfigurationParameters.SimulatedWinners[1].Contains(ticket.Name))
                    {
                        simulatedWinners[1] = ticket.NumberSelected.RegularNumbers[0];
                    }
                    else if (ConfigurationParameters.SimulatedWinners[2].Contains(ticket.Name))
                    {
                        simulatedWinners[2] = ticket.NumberSelected.RegularNumbers[0];
                    }
                }
                lotteryDrawNumbers = new LotteryNumbers(simulatedWinners);
            }
            else // draw winners randomly
            {
                lotteryDrawNumbers = randomEngine.GetLoterryBallsForDraw();
            }

            drawResult.Result = lotteryDrawNumbers;
            CalculateTotalFondsAccumulated();
            drawResult.PriceList = new double[ConfigurationParameters.PrizePercentages.Length];

            for (int i = 0; i < ConfigurationParameters.PrizePercentages.Length; i++)
            {
                drawResult.PriceList[i] = TotalAccumulatedFunds * ConfigurationParameters.PotRewardPercentage / 100.0 * double.Parse(ConfigurationParameters.PrizePercentages[i]) / 100.0;
            }

            return(drawResult);
        }