public void AddTicket(PowerBallTicket ticket) { if (!m_Tickets.Contains(ticket)) { m_Tickets.Add(ticket); } }
public void RemoveTicket(PowerBallTicket ticket) { if (m_Tickets.Contains(ticket)) { m_Tickets.Remove(ticket); } }
public void TestMethod_MatchThreeWhite() { // Arrange var winningTicket = new PowerBallTicket(1, 2, 3, 7, 6, 7); var myTicket = new PowerBallTicket(5, 4, 3, 2, 1, 6); var expectedWinnings = 7; // Act var actualWinnings = myTicket.getWinnings(winningTicket); // Assert Assert.AreEqual(expectedWinnings, actualWinnings); }
public void TestMethod_Jackpot() { // Arrange var winningTicket = new PowerBallTicket(1, 2, 3, 4, 5, 6); var myTicket = new PowerBallTicket(5, 4, 3, 2, 1, 6); var expectedWinnings = 1000000000; // Act var actualWinnings = myTicket.getWinnings(winningTicket); // Assert Assert.AreEqual(expectedWinnings, actualWinnings); }
public void TestMethod_MatchFourWhiteAndRed() { // Arrange var winningTicket = new PowerBallTicket(1, 2, 3, 4, 6, 6); var myTicket = new PowerBallTicket(5, 4, 3, 2, 1, 6); var expectedWinnings = 50000; // Act var actualWinnings = myTicket.getWinnings(winningTicket); // Assert Assert.AreEqual(expectedWinnings, actualWinnings); }
public void TestMethod_TestRandomPowerBallTicket() { // Arrange var numbers = new int[] { 1, 2, 3, 4, 5, 6 }; var expectedWinnings = 100000000; NotSoRandom random = new NotSoRandom(numbers); // Act var myTicket = new PowerBallTicket(random); var winningTicket = new PowerBallTicket(random); // Assert Assert.AreEqual(expectedWinnings, myTicket.getWinnings(winningTicket)); }
public PowerballTicketGump(PowerBallTicket ticket, Mobile from, bool powerBall) : base(50, 50) { m_Ticket = ticket; m_From = from; if (ticket.Owner == null) { ticket.Owner = from; } int gameNumber = 0; if (PowerBall.Game != null) { gameNumber = PowerBall.Game.GameNumber; } int entries = ticket.Entries.Count; int yoffSet = 25; string title = String.Format("<BASEFONT SIZE=8 COLOR=#FF0000><Center>Powerball</Center></BASEFONT>"); AddBackground(50, 0, 300, 200 + (yoffSet * entries), 9270); AddHtml(65, 170 + (yoffSet * entries), 350, 20, String.Format("<Basefont Size=2>Lotto Association of {0}, All Rights Reserved</Basefont>", ServerList.ServerName), false, false); AddHtml(50, 20, 300, 30, title, false, false); AddLabel(65, 50, labelColor, String.Format("Picks: {0}", entries)); AddLabel(65, 70, labelColor, String.Format("Game: {0}", m_Ticket.GameNumber)); if (ticket.GameNumber == gameNumber && entries < maxEntries) { AddHtml(180, 50, 80, 16, "<BASEFONT COLOR=#FFFFFF>Powerball</BASEFONT>", false, false); AddRadio(260, 50, 0x25F8, 0x25FB, powerBall, 0); AddHtml(180, 80, 80, 16, "<BASEFONT COLOR=#FFFFFF>No Powerball</BASEFONT>", false, false); AddRadio(260, 80, 0x25F8, 0x25FB, !powerBall, 1); AddLabel(245, 120, labelColor, "Quick Picks"); AddButton(321, 123, 0x837, 0x838, 2, GumpButtonType.Reply, 0); //Quick Pick } if (entries > 0) { AddLabel(65, 120, labelColor, "Pick"); for (int i = 0; i < ticket.Entries.Count; ++i) { TicketEntry entry = ticket.Entries[i]; int index = i + 1; List <int> entryList = new List <int>(); entryList.Add(entry.One); entryList.Add(entry.Two); entryList.Add(entry.Three); entryList.Add(entry.Four); entryList.Add(entry.Five); AddLabel(75, 150 + (i * yoffSet), labelColor, String.Format("{0}", index.ToString())); AddHtml(270, 150 + (i * yoffSet), 50, 16, String.Format("<BASEFONT COLOR=#FF0000>{0}</BASEFONT>", entry.PowerBall > 0 ? entry.PowerBall.ToString() : "<B>-</B>"), false, false); AddHtml(310, 150 + (i * yoffSet), 50, 16, entry.Winner ? "<BASEFONT COLOR=#FFFFFF><b>*</b></BASEFONT>" : "", false, false); for (int j = entryList.Count - 1; j >= 0; --j) { AddHtml(105 + (j * 30), 150 + (i * yoffSet), 50, 16, String.Format("<BASEFONT COLOR=#FFFFFF>{0}</BASEFONT>", entryList[j]), false, false); } ColUtility.Free(entryList); } } if (entries < maxEntries && ticket.GameNumber == gameNumber) { int yStart = 130 + (yoffSet * (entries)); AddButton(75, yStart + (yoffSet + 2), 0x837, 0x838, 1, GumpButtonType.Reply, 0); AddTextEntry(100, yStart + yoffSet, 20, 16, labelColor, 1, "*"); AddTextEntry(130, yStart + yoffSet, 20, 16, labelColor, 2, "*"); AddTextEntry(160, yStart + yoffSet, 20, 16, labelColor, 3, "*"); AddTextEntry(190, yStart + yoffSet, 20, 16, labelColor, 4, "*"); AddTextEntry(220, yStart + yoffSet, 20, 16, labelColor, 5, "*"); AddTextEntry(250, yStart + yoffSet, 20, 16, labelColor, 6, "*"); } }
public PowerballTicketGump(PowerBallTicket ticket, Mobile from) : this(ticket, from, true) { }
public override void OnResponse(NetState state, RelayInfo info) { switch (info.ButtonID) { default: case 0: break; case 1: { Container pack = m_From.Backpack; if (PowerBall.Instance != null && PowerBall.Game != null && PowerBall.Instance.CanBuyTickets) { int cost = PowerBall.Game.TicketCost; if (pack != null && pack.GetAmount(typeof(Gold)) >= cost) { pack.ConsumeTotal(typeof(Gold), cost); m_From.SendMessage("You purchase a Powerball ticket with {0} gold from your backpack.", cost); pack.DropItem(new PowerBallTicket(m_From, m_PowerBall)); if (PowerBall.Instance != null) { PowerBall.Instance.Profit += cost; } } else if (Banker.Withdraw(m_From, cost, true)) { var ticket = new PowerBallTicket(m_From, m_PowerBall); if (!pack.TryDropItem(m_From, ticket, false)) { m_From.SendMessage("There is no room in your pack, so the ticket was placed in your bank box!"); m_From.BankBox.DropItem(ticket); } if (PowerBall.Instance != null) { PowerBall.Instance.Profit += cost; } } else { m_From.SendLocalizedMessage(500191); //Begging thy pardon, but thy bank account lacks these funds. } } m_From.SendGump(new PowerBallStatsGump(m_PowerBall, m_From)); break; } case 2: //Reset all stats { if (m_From.AccessLevel == AccessLevel.Player) { break; } for (int i = 0; i < PowerBallStats.PicksStats.Count; ++i) { PowerBallStats.PicksStats.Clear(); } for (int i = 0; i < PowerBallStats.JackpotStats.Count; ++i) { PowerBallStats.JackpotStats.Clear(); } if (PowerBall.Instance != null) { PowerBall.Game.InvalidateProperties(); PowerBall.Game.UpdateSatellites(); } m_From.SendMessage("Stats erased!"); m_From.SendGump(new PowerBallStatsGump(m_PowerBall, m_From)); break; } case 3: { if (m_From.AccessLevel == AccessLevel.Player) { break; } if (!m_PowerBall.DoJackpot) { m_PowerBall.DoJackpot = true; m_From.SendGump(new PowerBallStatsGump(m_PowerBall, m_From)); m_From.SendMessage("Next picks will result in a jackpot!"); } break; } case 4: { if (m_From.AccessLevel == AccessLevel.Player) { break; } if (m_PowerBall.IsActive) { m_PowerBall.IsActive = false; m_From.SendMessage("Powerball set to inactive."); } else { m_PowerBall.IsActive = true; m_From.SendMessage("Powerball set to active."); } m_From.SendGump(new PowerBallStatsGump(m_PowerBall, m_From)); break; } } }
public void CheckForWinners() { if (m_Picks == null || m_Tickets == null || m_Tickets.Count == 0) { return; } List <TicketEntry> jackpotList = new List <TicketEntry>(); Dictionary <TicketEntry, int> prizeTable = new Dictionary <TicketEntry, int>(); for (int i = 0; i < m_Tickets.Count; ++i) { PowerBallTicket ticket = m_Tickets[i]; ticket.Checked = true; foreach (TicketEntry entry in ticket.Entries) { int matches = 0; bool powerball = false; for (int j = 0; j < m_Picks.Count; ++j) { if (j == m_Picks.Count - 1) { if (entry.PowerBall == m_Picks[j]) { powerball = true; } } else if (entry.One == m_Picks[j] || entry.Two == m_Picks[j] || entry.Three == m_Picks[j] || entry.Four == m_Picks[j] || entry.Five == m_Picks[j]) { matches++; } } if (matches == 5 && powerball) { jackpotList.Add(entry); entry.Winner = true; m_Jackpot = true; } if (matches >= 3 && !entry.Winner && !prizeTable.ContainsKey(entry)) { prizeTable.Add(entry, matches); entry.Winner = true; } if (powerball && !m_Jackpot) { entry.Ticket.Payout += 500; m_Profit -= 500; m_Payout += 500; entry.Winner = true; } } } DistributeAwards(jackpotList, prizeTable); }
public void TestMethod_ArrayConstuctorThrows() { // Arrange var numbers = new int[] { 5, 5, 5, 5, 5, 5, 5 }; var myTicket = new PowerBallTicket(numbers); }
public void TestMethod_DoubleWhite() { // Arrange var myTicket = new PowerBallTicket(5, 5, 5, 5, 5, 5); }
public void TestMethod_InvalidWhite() { // Arrange var myTicket = new PowerBallTicket(5, 4, 3, 2, 0, 1); }
public void TestMethod_InvalidRed() { // Arrange var myTicket = new PowerBallTicket(5, 4, 3, 2, 1, 0); }