Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.io.PrintStream;
- public class Lottery
- {
- private TicketPool ticketPool;
- private LotteryMachine lotteryMachine;
- private int firstWinningNumber;
- private int secondWinningNumber;
- private int thirdWinningNumber;
- private boolean isClosed;
- private boolean isCompleted;
- public Lottery(int n)
- {
- this.ticketPool = new TicketPool();
- this.lotteryMachine = new LotteryMachine(n);
- this.isClosed = true;
- this.isCompleted = true;
- }
- public void placeTicket(String name, int firstChoise, int secondChoise, int thirdChoise)
- {
- placeTicket(new Ticket(name, firstChoise, secondChoise, thirdChoise));
- }
- public void placeTicket(Ticket ticket)
- {
- this.ticketPool.addTicket(ticket);
- }
- public void draw()
- {
- this.lotteryMachine.makeDraw();
- this.firstWinningNumber = this.lotteryMachine.drawnNumber(1);
- this.secondWinningNumber = this.lotteryMachine.drawnNumber(2);
- this.thirdWinningNumber = this.lotteryMachine.drawnNumber(3);
- this.isCompleted = true;
- }
- public void openLottery()
- {
- this.isClosed = false;
- }
- public void closeLottery()
- {
- this.isClosed = true;
- }
- public boolean isClosed()
- {
- return this.isClosed;
- }
- public boolean isCompleted()
- {
- return this.isCompleted;
- }
- public boolean isWinningTicket(Ticket ticket)
- {
- if (this.ticketPool.containsTicket(ticket.getId()))
- {
- return (ticket.getNumber(1) == this.firstWinningNumber) && (ticket.getNumber(2) == this.secondWinningNumber) && (ticket.getNumber(3) == this.thirdWinningNumber);
- }
- return false;
- }
- public int noOfWinners()
- {
- int noOfWinners = 0;
- for (int i = 0; i < this.ticketPool.noOfTickets(); i++)
- {
- if (!isWinningTicket(this.ticketPool.getTicket(i)))
- continue;
- noOfWinners++;
- }
- return noOfWinners;
- }
- public void printWinningNumbers()
- {
- System.out.println("Winning Numbers: ");
- System.out.println(this.firstWinningNumber + ", " + this.secondWinningNumber + ", " + this.thirdWinningNumber);
- }
- public void printWinners()
- {
- if (isClosed())
- {
- System.out.println("The winners are:");
- if (noOfWinners() > 0)
- {
- for (int i = 0; i < this.ticketPool.noOfTickets(); i++)
- {
- if (!isWinningTicket(this.ticketPool.getTicket(i)))
- continue;
- System.out.println(this.ticketPool.getTicket(i).getName() + ", ticket id: " + this.ticketPool.getTicket(i).getId());
- }
- }
- else
- {
- System.out.println("No winners found");
- }
- }
- else
- {
- System.out.println("The lottery is closed");
- }
- }
- }
Add Comment
Please, Sign In to add comment