Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class Golftournament {
- private final int[] parsPerHole; // pole s hodnotami paru
- private Golfplayer[] players; // pole hracu
- //konstruktor
- public Golftournament(int[] parsPerHole, String[] names) {
- if (parsPerHole == null || parsPerHole.length < 1)
- throw new IllegalArgumentException("Pole pars nemůže být prázdné.");
- if (names == null || names.length < 1)
- throw new IllegalArgumentException("Pole jmen nemůže být prázdné.");
- this.parsPerHole = parsPerHole;
- this.players = new Golfplayer[names.length];
- // pole naplnime hraci
- for (int i = 0; i < this.players.length; i++) {
- this.players[i] = new Golfplayer(names[i], parsPerHole.length);
- // jmeno vezmeme ze vstupniho pole, pocet jamek je dan polem s pary
- }
- }
- //metoda, kde se generují šechny výsledky
- public void generateResults() {
- Random rand = new Random();
- int strokesPerHole;
- // cyklus prochazejici vsechny jamky (jeden pruchod = jedno odehrane kolo)
- for (int i = 0; i < this.parsPerHole.length; i++) {
- // cyklus prochazejici vsechny hrace
- for (int j = 0; j < this.players.length; j++) {
- // kazdemu hraci potrebujeme vygenerovat pocet ran na dane jamce
- // tento pocet musi byt z rozsahu [1; par+2]
- strokesPerHole = rand.nextInt(this.parsPerHole[i] + 2) + 1;
- this.players[j].setStrokesPerHole(i, strokesPerHole);
- }
- // po kazde odehrane jamce hrace seradime a vytiskneme
- this.sort();
- // po serazeni pole jej muzeme vytisknout
- // po posledni odehrane jamce potrebujeme specialni hlavicku
- if (i < this.parsPerHole.length - 1) {
- System.out.println("Průběžné pořadí po " + (i+1) + ". odehrané jamce");
- System.out.println(" ");
- }
- else {
- System.out.println("Konečné pořadí turnaje");
- System.out.println(" ");
- }
- this.print();
- System.out.println(); // prazdny radek
- }
- }
- // bubble sort, kde postupně zkracujeme délku pole
- public void sort() {
- boolean change = true;
- int maxIndex = this.players.length - 1;
- Golfplayer pom;
- while (change) {
- change = false;
- for (int i = 0; i < maxIndex; i++) {
- if (this.players[i].getTotalStrokes() > this.players[i+1].getTotalStrokes()) {
- // budeme provadet zamenu golfistu
- pom = this.players[i];
- this.players[i] = this.players[i+1];
- this.players[i+1] = pom;
- change = true;
- }
- }
- maxIndex--;
- }
- }
- // formatovaný vypis golfistů
- public void print() {
- if (this.players == null) {
- System.out.println("Startovní pole golfistů je prázdné.");
- }
- else {
- String text = String.format("%-6s %-25s %-10s", "Poř.", "Jméno", "Skóre");
- System.out.println(text + "\n--------------------------------------");
- for (int i = 0; i < this.players.length; i++) {
- text = String.format("%-6s %-25s %-10d", (i+1) + ".", this.players[i].getName(), this.players[i].getTotalStrokes());
- System.out.println(text);
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement