public Ticket(string name, bool IsAutoGeneratingNumbers, LotteryNumbers numberSelected) { this.Name = name; this.TicketNo = GeneratingTickeNo(); this.IsAutoGeneratingNumbers = false; this.NumberSelected = numberSelected; }
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); }
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 }
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); }
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); }