Uputstvo
U seteru za igru dozvoli samo „poker“, „ajnc“ i „rulet“. Klasa Kazino u sebi čuva niz igrača. Za najprofitnijaIgra() za svaku od tri igre prebroj igrače u minusu (stanje < 0) i vrati igru sa najvećim brojem; kod jednakog broja ostaje ona koja je ranije pronađena (poređenje sa >, ne >=).
Rešenje (Java)
class Igrac {
private String ime;
private String igra;
private int stanje;
Igrac(String ime, String igra, int stanje) {
this.ime = ime;
setIgra(igra);
this.stanje = stanje;
}
String getIgra() { return igra; }
int getStanje() { return stanje; }
void setIgra(String igra) {
if (igra.equals("poker") || igra.equals("ajnc") || igra.equals("rulet")) {
this.igra = igra;
} else {
System.out.println("Nedozvoljena igra: " + igra);
this.igra = "poker"; // podrazumevana vrednost
}
}
public String toString() {
return ime + " igra " + igra + " i ima " + stanje + " na racunu.";
}
}
class Kazino {
private Igrac[] igraci;
Kazino(Igrac[] igraci) {
this.igraci = igraci;
}
public String toString() {
String s = "";
for (Igrac i : igraci) s += i.toString() + "\n"; // poziva toString svakog igrača
return s;
}
String najprofitnijaIgra() {
String[] igre = {"poker", "ajnc", "rulet"};
String najbolja = null;
int max = 0;
for (Igrac i : igraci) { // redom kojim nailazimo na igre
if (i.getStanje() >= 0) continue;
int broj = 0;
for (Igrac j : igraci) {
if (j.getStanje() < 0 && j.getIgra().equals(i.getIgra())) broj++;
}
if (broj > max) { // > : kod jednakog broja ostaje prva pronađena
max = broj;
najbolja = i.getIgra();
}
}
return najbolja == null ? "nijedna (niko nije u minusu)" : najbolja;
}
}
public class Kockarnica {
public static void main(String[] args) {
Igrac[] niz = {
new Igrac("Toma", "poker", 75000),
new Igrac("Nikola", "ajnc", 23000),
new Igrac("Ana", "rulet", -5000),
new Igrac("Marko", "ajnc", -1200),
new Igrac("Jovan", "rulet", -300),
};
Kazino kazino = new Kazino(niz);
System.out.print(kazino);
System.out.println("Najprofitnija igra: " + kazino.najprofitnijaIgra());
}
}