Guest User

Untitled

a guest
Jun 23rd, 2018
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.71 KB | None | 0 0
  1. import java.io.PrintStream;
  2.  
  3. public class Lottery
  4. {
  5.   private TicketPool ticketPool;
  6.   private LotteryMachine lotteryMachine;
  7.   private int firstWinningNumber;
  8.   private int secondWinningNumber;
  9.   private int thirdWinningNumber;
  10.   private boolean isClosed;
  11.   private boolean isCompleted;
  12.  
  13.   public Lottery(int n)
  14.   {
  15.     this.ticketPool = new TicketPool();
  16.     this.lotteryMachine = new LotteryMachine(n);
  17.     this.isClosed = true;
  18.     this.isCompleted = true;
  19.   }
  20.  
  21.   public void placeTicket(String name, int firstChoise, int secondChoise, int thirdChoise)
  22.   {
  23.     placeTicket(new Ticket(name, firstChoise, secondChoise, thirdChoise));
  24.   }
  25.  
  26.   public void placeTicket(Ticket ticket)
  27.   {
  28.     this.ticketPool.addTicket(ticket);
  29.   }
  30.  
  31.   public void draw()
  32.   {
  33.     this.lotteryMachine.makeDraw();
  34.  
  35.     this.firstWinningNumber = this.lotteryMachine.drawnNumber(1);
  36.     this.secondWinningNumber = this.lotteryMachine.drawnNumber(2);
  37.     this.thirdWinningNumber = this.lotteryMachine.drawnNumber(3);
  38.     this.isCompleted = true;
  39.   }
  40.  
  41.   public void openLottery()
  42.   {
  43.     this.isClosed = false;
  44.   }
  45.  
  46.   public void closeLottery()
  47.   {
  48.     this.isClosed = true;
  49.   }
  50.  
  51.   public boolean isClosed()
  52.   {
  53.     return this.isClosed;
  54.   }
  55.  
  56.   public boolean isCompleted()
  57.   {
  58.     return this.isCompleted;
  59.   }
  60.  
  61.   public boolean isWinningTicket(Ticket ticket)
  62.   {
  63.     if (this.ticketPool.containsTicket(ticket.getId()))
  64.     {
  65.       return (ticket.getNumber(1) == this.firstWinningNumber) && (ticket.getNumber(2) == this.secondWinningNumber) && (ticket.getNumber(3) == this.thirdWinningNumber);
  66.     }
  67.     return false;
  68.   }
  69.  
  70.   public int noOfWinners()
  71.   {
  72.     int noOfWinners = 0;
  73.     for (int i = 0; i < this.ticketPool.noOfTickets(); i++)
  74.     {
  75.       if (!isWinningTicket(this.ticketPool.getTicket(i)))
  76.         continue;
  77.       noOfWinners++;
  78.     }
  79.  
  80.     return noOfWinners;
  81.   }
  82.  
  83.   public void printWinningNumbers()
  84.   {
  85.     System.out.println("Winning Numbers: ");
  86.     System.out.println(this.firstWinningNumber + ", " + this.secondWinningNumber + ", " + this.thirdWinningNumber);
  87.   }
  88.  
  89.   public void printWinners()
  90.   {
  91.     if (isClosed())
  92.     {
  93.       System.out.println("The winners are:");
  94.       if (noOfWinners() > 0)
  95.       {
  96.         for (int i = 0; i < this.ticketPool.noOfTickets(); i++)
  97.         {
  98.           if (!isWinningTicket(this.ticketPool.getTicket(i)))
  99.             continue;
  100.           System.out.println(this.ticketPool.getTicket(i).getName() + ", ticket id: " + this.ticketPool.getTicket(i).getId());
  101.         }
  102.  
  103.       }
  104.       else
  105.       {
  106.         System.out.println("No winners found");
  107.       }
  108.     }
  109.     else
  110.     {
  111.       System.out.println("The lottery is closed");
  112.     }
  113.   }
  114. }
Add Comment
Please, Sign In to add comment