-
Notifications
You must be signed in to change notification settings - Fork 0
/
Lotto.java
133 lines (122 loc) · 3.61 KB
/
Lotto.java
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
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
package de.niklas.exercise.classes;
import java.util.Arrays;
import java.util.Random;
import java.util.Scanner;
/**
* <strong>Lotto</strong><br>
* Implementation eines Lottospiels
*
* @see "09_Klassen_Aufgaben-3.pdf"
* @author Niklas Buse
*/
public class Lotto {
private int m;
private int n;
private int[] guesses;
private int[] drawn;
Scanner scan;
/**
* Eingabe der Lottoparameter
* @param m Mögliche Maximalzahl
* @param n Anzahl zu ratender Zahlen
*/
public Lotto(int m, int n){
this.m = m;
this.n = n;
this.guesses = new int[m];
this.drawn = new int[m];
}
/**
* Einlesen der Zahlen zum Spielen aus der CMD,
* dabei wird auf die Gültigkeit des Tipps geachtet
*/
public void tippen(){
scan = new Scanner(System.in);
for(int i = 0; i < m; i++){
boolean notValidGuess = true;
while(notValidGuess){
System.out.printf("Geben Sie bitte Ihren Tipp für die %d. Zahl ein: ", i+1);
int guess = scan.nextInt();
if(guess <= n & guess >= 1){
this.guesses[i] = guess;
notValidGuess = false;
}
else{
System.out.printf("Bitte gebe einen Tipp ab, der zwischen 1 und %d ist\n", this.n);
}
}
}
Arrays.sort(guesses);
System.out.println("Tipp: " + Arrays.toString(guesses));
}
/**
* Tippen durch Eingabe eines Arrays
* @param tipp Array an Tippzahlen
*/
public void tippen(int[] tipp){
if(tipp.length == guesses.length){
this.guesses = tipp;
}
else{
System.out.println("Dein festgelegter Tipp hat nicht die passende Anzahl an Tipps");
System.out.println("Das Programm wird automatisch beendet.");
System.exit(0);
}
System.out.println("Tipp: " + Arrays.toString(guesses));
}
/**
* Zufälliges Ziehen der Lottozahlen
*/
public void ziehen(){
for(int i = 0; i < drawn.length; i++){
drawn[i] = new Random().nextInt(1, n);
}
Arrays.sort(drawn);
System.out.println();
System.out.println("Tipp: " + Arrays.toString(guesses));
System.out.println("Gezogene Zahlen: " + Arrays.toString(drawn));
}
/**
* Bestimmung und Rückgabe richtiger Tipps
* @return Anzahl richtiger Tipps
*/
public int richtige(){
int counter = 0;
for(int i = 0; i<guesses.length & i<drawn.length; i++){
if(guesses[i] == drawn[i]){
counter++;
}
}
return counter;
}
public static void main(String[] args) {
Lotto deutschesLotto = new Lotto(6,49);
deutschesLotto.tippen();
// deutschesLotto.tippen(new int[]{31, 32, 33, 34, 35, 36}); // Vordefinierter Tipp zum Testen
deutschesLotto.ziehen();
System.out.println("Richtige: " + deutschesLotto.richtige());
}
}
/* Beispielausführung
--------------------------------------
Eingabe:
1
2
3
4
5
6
--------------------------------------
Ausgabe:
Geben Sie bitte Ihren Tipp für die 1. Zahl ein: 1
Geben Sie bitte Ihren Tipp für die 2. Zahl ein: 2
Geben Sie bitte Ihren Tipp für die 3. Zahl ein: 3
Geben Sie bitte Ihren Tipp für die 4. Zahl ein: 4
Geben Sie bitte Ihren Tipp für die 5. Zahl ein: 5
Geben Sie bitte Ihren Tipp für die 6. Zahl ein: 6
Tipp: [1, 2, 3, 4, 5, 6]
Tipp: [1, 2, 3, 4, 5, 6]
Gezogene Zahlen: [1, 9, 31, 40, 41, 45]
Richtige: 1
--------------------------------------
*/