Hi, z javą mam styczność dosłownie od kilku dni, poza tym ledwie kilkumiesięczne zaplecze w Delphi. Żeby się oswoić ze składnią napisałem program, który powtarza losowania totolotka dopóki nie trafimy głównej nagrody czyli "szóstki" (albo piątki, zależnie jaką liczbę usmieścimy w kodzie). To o co bym prosił to opinia doświadczonych coderów czy kod jest czytelny i czy dałoby się go napisać wydajniej/zamknąć w mniejszej ilości linijek (a zapewne się da). Ewentualnie inne rady, tam gdzie uznałem za stosowne umieściłem komentarze, pozdro.
import java.util.Arrays;
import java.util.Scanner;
public class wysw {
public static void main(String[] args) {
int n = 50;
int usera[] = new int[6]; //TABLICA PRZECHOWUJACA "SKRESLONE" LICZBY NA KUPONIE
int result[] = new int[6]; //TABLICA PRZECHOWUJACA LICZBY WYLOSOWANE W AKTUALNYM LOSOWANIU
int numbers[] = new int[n]; //TABLICA Z LICZBAMI OD 1 DO 50
int r; //ZMIENNA PRZECHOWUJACA LOSOWA LICZBE
int licznik = 0; //ZMIENNA PRZECHOWUJACA ILOSC TRAFIONYCH LICZB W AKTUALNYM LOSOWANIU
int illos = 0; //LICZNIK LOSOWAN
usera[0] = 8;
usera[1] = 14;
usera[2] = 19;
usera[3] = 27;
usera[4] = 33;
usera[5] = 41;
do{
for (int i = 0; i <numbers.length; i++){
numbers[i] = i + 1; //NAJZWYKLEJSZE ZAPELNIENIE TABLICY
}
licznik = 0;
n = 50;
for (int i = 0; i < 6; i++){
r = (int) (Math.random() * n);
result[i] = numbers[r];
numbers[r] = numbers[n - 1];
n--;
System.out.print(result[i] + " "); //WYLOSOWANIE 6 LICZB DO TABLICY RESULT I WRZUCENIE
//OSTATNIEJ LICZBY W MIEJSCE W TEJ WYLOSOWANEJ
}
System.out.print("\n");
for (int i = 0; i < 6; i++){
for (int j = 0; j < 6; j++){
if (usera[i] == result[j]){
licznik = licznik + 1; //SPRAWDZENIE CZY COS TRAFILISMY
}
}
}
illos = illos + 1; //ZLICZANIE LOSOWAN
System.out.println("Licznik: " + licznik);
System.out.println("Losowanie nr: " + illos);
}
while(licznik < 6); //JAK CHCEMY POLOWAC NA SZOSTKE TO WPISUJEMY TUTAJ 6, PIATKE 5 ITD
}
}