Cześć,
package com.company;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Random;
import java.util.Scanner;
public class SiatkowkaTurniej extends Turniej {
protected ArrayList<DruzynaSiatkowka> Druzyny;
protected ArrayList<SiatkowkaSedzia> Sedziowie;
protected ArrayList<SiatkowkaMecz> Mecze;
protected PolFinal polfinal1;
protected PolFinal polfinal2;
protected Final final1;
// Konstruktor klasy
public void SiatkowkaTurniej(ArrayList<DruzynaSiatkowka> Druzyny, ArrayList<SiatkowkaSedzia> Sedziowie){
//super();
Mecze = new ArrayList<>();
this.Druzyny = Druzyny;
this.Sedziowie = Sedziowie;
}
Random random = new Random();
Scanner scanner = new Scanner(System.in);
@Override
public void SedziaRemis() {
for(SiatkowkaMecz m : Mecze)
{
int index1 = random.nextInt(Sedziowie.size());
int index2;
int index3;
do{index2 = random.nextInt(Sedziowie.size());}while(index1==index2);
do{index3 = random.nextInt(Sedziowie.size());}while(index3==index1 || index3==index2);
m.glownySedzia = Sedziowie.get(index1);
m.sedzia1 = Sedziowie.get(index2);
m.sedzia2 = Sedziowie.get(index3);
}
}
@Override
// randOrRecznie - jak wpisywac wyniki meczu(recznie czy automatycznie)
// 1 - automatycznie
// 2 - recznie
public void TworzenieMeczy(){
for(DruzynaSiatkowka t : Druzyny){
for(int i = Druzyny.indexOf(t)+1 ; i<Druzyny.size(); i++){
SiatkowkaMecz match = new SiatkowkaMecz(t, Druzyny.get(i));
Mecze.add(match);
}
}
}
@Override
public void Gra2() {
int wybor = 0;
while(wybor!=1 && wybor!=2) {
System.out.println("Naciśni 1 jeżeli chcesz ustawić wynik przez random.");
System.out.println("Naciśni 2 jeżeli chcesz ustawić wynik samodzielnie.");
while (!scanner.hasNextInt()) {
System.out.println("To nie liczba!");
scanner.next();
}
wybor = scanner.nextInt();
if (wybor!= 1 && wybor!=2) System.out.println("Zła liczba.");
}
for(SiatkowkaMecz m : Mecze){
m.gra(wybor);
}
}
@Override
public void TablicaWynikow() {
System.out.println("Tablica wyników:");
for(SiatkowkaMecz m : Mecze){
System.out.println(m.druzyna1.getNazwa()+" vs "+m.druzyna2.getNazwa()+" WINNER: "+m.zwyciezca.getNazwa());
System.out.println("Główny sędzia: " + m.glownySedzia.getImie() + " "+ m.glownySedzia.getNazwisko());
System.out.println("Pierwszy sędzia: " + m.sedzia1.getImie() + " "+ m.sedzia1.getNazwisko());
System.out.println("Drugi sędzia: " + m.sedzia2.getImie() + " "+ m.sedzia2.getNazwisko());
System.out.println();
}
}
@Override
public void PolFinalKwalifikacja() {
Collections.sort(Druzyny);
int wybor = 0;
while(wybor!=1 && wybor!=2) {
System.out.println("Naciśni 1 jeżeli chcesz ustawić wynik przez random.");
System.out.println("Naciśni 2 jeżeli chcesz ustawić wynik samodzielnie.");
while (!scanner.hasNextInt()) {
System.out.println("To nie liczba!");
scanner.next();
}
wybor = scanner.nextInt();
if (wybor!= 1 && wybor!=2) System.out.println("Zła liczba.");
}
if(Druzyny.get(3).wygrane == Druzyny.get(4).wygrane)
{
SiatkowkaMecz match = new SiatkowkaMecz(Druzyny.get(3), Druzyny.get(4));
match.gra(wybor);
polfinal1 = new PolFinal(Druzyny.get(0), match.zwyciezca);
}else polfinal1 = new PolFinal(Druzyny.get(0), Druzyny.get(3));
int index1 = random.nextInt(Sedziowie.size());
int index2;
int index3;
do{index2 = random.nextInt(Sedziowie.size());}while(index1==index2);
do{index3 = random.nextInt(Sedziowie.size());}while(index3==index1 || index3==index2);
polfinal1.glownySedzia = Sedziowie.get(index1);
polfinal1.sedzia = Sedziowie.get(index2);
polfinal1.sedzia2 = Sedziowie.get(index3);
polfinal1.gra(wybor);
polfinal1 = new PolFinal(Druzyny.get(1), Druzyny.get(2));
index1 = random.nextInt(Sedziowie.size());
do{index2 = random.nextInt(Sedziowie.size());}while(index1==index2);
do{index3 = random.nextInt(Sedziowie.size());}while(index3==index1 || index3==index2);
polfinal2.glownySedzia = Sedziowie.get(index1);
polfinal2.sedzia = Sedziowie.get(index2);
polfinal2.sedzia2 = Sedziowie.get(index3);
polfinal2.gra(wybor);
}
@Override
public void FinalKwalifikacja() {
final1 = new Final(polfinal1.zwyciezca, polfinal2.zwyciezca);
int wybor = 0;
while(wybor!=1 && wybor!=2) {
System.out.println("Naciśni 1 jeżeli chcesz ustawić wynik przez random.");
System.out.println("Naciśni 2 jeżeli chcesz ustawić wynik samodzielnie.");
while (!scanner.hasNextInt()) {
System.out.println("To nie liczba!");
scanner.next();
}
wybor = scanner.nextInt();
if (wybor!= 1 && wybor!=2) System.out.println("Zła liczba.");
}
int index1 = random.nextInt(Sedziowie.size());
int index2;
int index3;
do{index2 = random.nextInt(Sedziowie.size());}while(index1==index2);
do{index3 = random.nextInt(Sedziowie.size());}while(index3==index1 || index3==index2);
final1.glownySedzia = Sedziowie.get(index1);
final1.sedzia = Sedziowie.get(index2);
final1.sedzia2 = Sedziowie.get(index3);
final1.gra(wybor);
}
public ArrayList<SiatkowkaMecz> getMatches() {
return Mecze;
}
public void setMatches(ArrayList<SiatkowkaMecz> Mecze) {
this.Mecze = Mecze;
}
public ArrayList<DruzynaSiatkowka> getTeams() {
return Druzyny;
}
public void setTeams(ArrayList<DruzynaSiatkowka> Druzyny) {
this.Druzyny = Druzyny;
}
public ArrayList<SiatkowkaSedzia> getReferees() {
return Sedziowie;
}
public void setReferees(ArrayList<SiatkowkaSedzia> Sedziowie) {
this.Sedziowie = Sedziowie;
}
public PolFinal getSemifinal1() {
return polfinal1;
}
public void setSemifinal1(PolFinal polfinal1) {
this.polfinal1 = polfinal1;
}
public PolFinal getSemiFinal2() {
return polfinal2;
}
public void setSemiFinal2(PolFinal polfinal2) {
this.polfinal2 = polfinal2;
}
public Final getFinal1() {
return final1;
}
public void setFinal1(Final final1) {
this.final1 = final1;
}
}
Ogólnie mam mały problem z funkcja Collections.sort w javie, nie wiem dlaczego odrzuca moje obiekty, które podałem do posortowania. Środowisko Intellij podpowiada takie coś: "reason: no instance(s) of type variable(s) T exist so that DruzynaSiatkowka conforms to Comparable<? super T>". Ogólnie ja ten kawałek kodu wziąłem z innego programu, ale on jest niemal identyczny, główna zmiana polega na tym, że nazwałem inaczej zmienne. Jeśli ktoś będzie wiedział o co chodzi i będzie w stanie mi coś podpowiedzieć to niech się odezwie. Z góry Dzięki.