H
hüteüberhüte
Gast
Hallo, ich weiß nicht, wie ich die Methoden ordnen und nennen soll und ob ich
obligatorisch überall schreiben sollte oder net. Das Programm sieht erst mal so aus:
Danke für Hilfe
Code:
this.
Java:
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Random;
public class LottoZiehung {
private static final Random random = new Random();
private final int[] ziehung;
public LottoZiehung(int[] ziehung) {
if (ziehung == null || ziehung.length != 6) {
throw new IllegalArgumentException(Arrays.toString(ziehung));
}
Arrays.sort(ziehung);
if (ziehung[0] < 1 || ziehung[5] > 49) {
throw new IllegalArgumentException(Arrays.toString(ziehung));
}
for (int i = 0; i < ziehung.length - 1; i++) {
if (ziehung[i] == ziehung[i + 1]) {
throw new IllegalArgumentException(Arrays.toString(ziehung));
}
}
this.ziehung = ziehung;
}
public LottoZiehung() {
ziehung = generiereZiehung();
}
private int[] generiereZiehung() {
int[] ia = new int[6];
a:
for (int i = 0; i < ia.length;) {
int r = random.nextInt(49) + 1;
for (int j = 0; j < i; j++) {
if (ia[j] == r) {
continue a;
}
}
ia[i++] = r;
}
Arrays.sort(ia);
return ia;
}
public int[] getZiehung() {
int[] ia = new int[ziehung.length];
System.arraycopy(ziehung, 0, ia, 0, ziehung.length);
return ia;
}
@Override
public boolean equals(Object obj) {
if (obj == null) {
return false;
}
if (getClass() != obj.getClass()) {
return false;
}
final LottoZiehung other = (LottoZiehung) obj;
if (!Arrays.equals(this.ziehung, other.ziehung)) {
return false;
}
return true;
}
@Override
public String toString() {
return "LottoZiehung{" + "ziehung=" + Arrays.toString(ziehung) + '}';
}
public int richtige(LottoZiehung other) {
int c = 0;
for (int i : other.ziehung) {
if (Arrays.binarySearch(this.ziehung, i) >= 0) {
c++;
}
}
return c;
}
public static void main(String[] args) {
List<LottoZiehung> ziehungen = new ArrayList<LottoZiehung>();
for (int i = 0; i < 10; i++) {
ziehungen.add(new LottoZiehung());
}
LottoZiehung meineZiehung = new LottoZiehung(
new int[]{1, 49, 2, 48, 3, 47});
System.out.println("meineZiehung = " + meineZiehung);
System.out.println("equals = " + meineZiehung.equals(new LottoZiehung(meineZiehung.getZiehung())));
for (int i = 0; i < ziehungen.size(); i++) {
System.out.println(
i + 1 + ": " + ziehungen.get(i)
+ ", richtige: " + ziehungen.get(i).richtige(meineZiehung));
}
}
}
Danke für Hilfe