summaryrefslogtreecommitdiffstats
path: root/src/de/fhswf/in/inf/java1/aufgabe8/Lottery6OutOf49.java
blob: 3342ebd4bbe5d3ea7e66683a61c53d1bf68e0f29 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
/**
 * 
 */
package de.fhswf.in.inf.java1.aufgabe8;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

/**
 * A class, that simulates a 6 out of 49 Lottery.
 *
 * @author $Author: $
 * @version $Revision: $, $Date: $ UTC
 */
public class Lottery6OutOf49
{

   private static final int MAX_NUMBER = 49;

   private ArrayList<Integer> lotteryNumbers;

   private List<Integer> lastDraw;

   private Integer superzahl;

   /**
    * Creates a new valid object, that also starts the first draw.
    *
    */
   public Lottery6OutOf49()
   {
      lotteryNumbers = new ArrayList<Integer>(MAX_NUMBER);
      
      for (int i = 1; i <= MAX_NUMBER; i++)
      {
         lotteryNumbers.add(i);
      }
   }

   /**
    * Does the next draw.
    *
    */
   public void nextDraw()
   {
      lastDraw = FloydAndBentley.sample(lotteryNumbers, 7);

      superzahl = lastDraw.remove(lastDraw.size() - 1);
      lastDraw.sort(null);
   }

   /**
    * Returns the last draw.
    *
    * @return Returns an immutable list of the last draw.
    */
   public List<Integer> getLastDraw()
   {
      if (lastDraw == null)
      {
         throw new IllegalStateException("First needs a draw.");
      }
      return Collections.unmodifiableList(lastDraw);
   }

   /**
    * Returns the super number.
    *
    * @return The super number of the last draw.
    */
   public Integer getSuperzahl()
   {
      if (superzahl == null)
      {
         throw new IllegalStateException("First needs a sraw.");
      }
      return new Integer(superzahl);
   }

}