Sportliga programmieren

Hey

Mitglied
Hey Leute 🙂

ich habe mich hier gerade angemeldet, weil ich bei einer Hausaufgabe in Informatik einfach nicht weiterkomme... Ich sitze jetzt wirklich schon stundenlang dran, mir fehlt aber einfach der Ansatz. Natürlich habe ich die Forumregeln gelesen und weiß, dass ihr keine Hausaufgaben übernehmt, das erwarte ich aber auch gar nicht!

Erstmal zur Aufgabe:
-jede Mannschaft soll ein Objekt sein (die entsprechenden Objekte habe ich bereits programmiert, mir fehlt aber noch die Verwaltung und die geschickte Speicherung in einem Array)
-es soll Attribute für Punkte, Tordifferenz etc. geben
-Verwaltung der Begegnungen (extra Klasse oder als Methode von der Klasse "Liga" / Auswirkungen auf Tabelle)
-Tabelle anzeigen lassen
Also zusammengefasst eine Liga mit Teams und Begegnungen, deren Tabelle angezeigt wird.

Hier erst mal ein paar erste Ansätze, wobei ich mir überhaupt nicht sicher bin, ob dieser Ansatz überhaupt sinnvoll ist.

Java:
public class Mannschaft {
  
  int Punkte, Tore, Gegentore, Tordifferenz, Siege, Unentschieden, Niederlagen, Spiele;
  String Name;
  Mannschaft (String nam, int p, int t, int gt, int diff, int s, int u, int n, int sp) {;
    Name = nam;
    Punkte = p;
    Tore = t;
    Gegentore = gt;
    diff = t - gt;
    Tordifferenz = diff;
    Siege = s;
    Unentschieden = u;
    Niederlagen = n;
    Spiele = sp;
  }
  
  
  public static void sortiere(int[] x) {
    boolean unsortiert=true;
    int temp;
    
    while (unsortiert){
      unsortiert = false;
      for (int i=0; i < x.length-1; i++)
      if (x[i] > x[i+1]) {
        temp       = x[i];
        x[i]       = x[i+1];
        x[i+1]     = temp;
        unsortiert = true;
      }
    }
  }
  
  public static void main(String[] args) {
    Mannschaft fcbayernmuenchen = new Mannschaft("FC Bayern",9,3,3,3,3,3,3,3);
    
    
    Mannschaft borussiadortmund = new Mannschaft("Dortmund",4,1,1,1,1,1,1,1);
    //Mannschaft hamburgersv = new Mannschaft();
    Mannschaft eintrachtfrankfurt = new Mannschaft("Frankfurt",6,2,2,2,2,2,2,2);
    /*Mannschaft fcnuernberg = new Mannschaft();
    Mannschaft schalke = new Mannschaft();
    Mannschaft hannover = new Mannschaft();
    Mannschaft werderbremen = new Mannschaft();
    Mannschaft mönchengladbach = new Mannschaft();
    Mannschaft bayerleverkusen = new Mannschaft();
    Mannschaft fcaugsburg = new Mannschaft();
    Mannschaft vfbstuttgart = new Mannschaft();
    Mannschaft fsvmainz = new Mannschaft();
    Mannschaft scfreiburg = new Mannschaft();
    Mannschaft hoffenheim = new Mannschaft();
    Mannschaft fortunaduesseldorf = new Mannschaft();
    Mannschaft vflwolfsburg = new Mannschaft();
    Mannschaft greutherfuerth = new Mannschaft();           */
    
    
    int[] Tabelle = new int[3];
    Tabelle [0] = fcbayernmuenchen.Punkte;
    Tabelle [1] = borussiadortmund.Punkte;
    Tabelle [2] = eintrachtfrankfurt.Punkte;
    
    
    String[] Mannname = new String[3];
    Mannname [0] = fcbayernmuenchen.Name;
    Mannname [1] = borussiadortmund.Name;
    Mannname [2] = eintrachtfrankfurt.Name;
    
    sortiere(Tabelle);
    for (int i=0; i<Tabelle.length; i++)
    System.out.print(Mannname[i] + Tabelle[i]+"\n");
    
    
    System.out.println("Name \t\tPunkte \t\tTordifferenz");
    System.out.println("----------------------------------------------------");
    System.out.println(fcbayernmuenchen.Name + "\t\t" + fcbayernmuenchen.Punkte + "\t\t" + fcbayernmuenchen.Tordifferenz );
    System.out.println(borussiadortmund.Name + "\t\t" + Tabelle[1] + "\t\t" + borussiadortmund.Tordifferenz );
    System.out.println(eintrachtfrankfurt.Name + "\t\t" + Tabelle[2] + "\t\t" + eintrachtfrankfurt.Tordifferenz );
    
    
  }
  
  
  
}
Die "Tabelle" wird noch falsch herum ausgegeben und ich muss mir noch überlegen, wie ich den Mannschaftsnamen mit hinein packe. Dafür wäre es ja am einfachsten ihn mit in ein mehrdimensionales Array zu packen, aber das geht ja nicht..

Schonmal Vielen Dank für alle Antworten!
 
Mannschaft ersetzt ja bereits als Datenkapselung ein Array. Du brauchst nur eine Kapselung für Mannschaften.

Java:
Mannschaft fcbayernmuenchen = new Mannschaft("FC Bayern",9,3,3,3,3,3,3,3);
Mannschaft borussiadortmund = new Mannschaft("Dortmund",4,1,1,1,1,1,1,1);
Mannschaft eintrachtfrankfurt = new Mannschaft("Frankfurt",6,2,2,2,2,2,2,2);

Mannschaft[] array = new Mannschaft[3];
array[0] = fcbayernmuenchen;
array[1] = borussiadortmund;
array[2] = eintrachtfrankfurt;

sortiere(array);

for (Mannschaft mannschaft:array)
    System.out.print(mannschaft.name + " - " + mannschaft.Punkte + "\n");
    System.out.println("----------------------------------------------------");    
    //TODO usw
}

(Frei aus dem Bauch raus)
 
Erstmal danke!

Aber ich verstehe das noch nicht so ganz..
Die Definition von einem Array lautet doch
"Typ"[]"Name"=new "Typ"
Und für den Datentyp muss doch Int oder String, etc. eingesetzt werden.. Wieso hast du da Mannschaft eingesetzt und was genau weise array[0] denn zu? Alle Daten, also Name Tordifferenz, Punkte, etc?

Java:
for (Mannschaft mannschaft:array)

Diese Zeile versteh ich auch noch nicht, wie lange läuft die Schleife durch?
 
Die Definition von einem Array lautet doch
"Typ"[]"Name"=new "Typ"
Und für den Datentyp muss doch Int oder String, etc. eingesetzt werden.. Wieso hast du da Mannschaft eingesetzt und was genau weise array[0] denn zu? Alle Daten, also Name Tordifferenz, Punkte, etc?

Mannschaft ist ein Container für die Variablen. String ist ja auch nur ein Container für ein char-Array und 3 Ints.
array[0] = ...; kopiert die Mannschafts-Variable in das Feld des Arrays.

Java:
for (Mannschaft mannschaft:array)
wie lange läuft die Schleife durch?

So lange, bis alle Mannschaften ein mal gelesen wurden, also Array#length mal.
 
Okay, das versteh ich!
Dein Code ist jetzt meine komplette Main-Methode..

Jetzt habe ich aber folgende Fehlermeldungen..

Java:
 System.out.print(Mannschaft.name + " - " + Mannschaft.Punkte + "\n");
"Mannschaft.java:100:60: error: non-static variable Punkte cannot be referenced from a static context"

Java:
sortiere(array);
"Mannschaft.java:90:5: error: method sortiere in class Mannschaft cannot be applied to given types;"
 
Zuletzt bearbeitet:
Das kommt wohl daher, dass du nicht durchgehend Groß- und Kleinschreibung verwendest. Du musst die Variablen von einer Instanz von Mannschaft lesen, nicht aus der Klasse.

sortiere musst du natürlich umschreiben, dass es Mannschaft-Arrays annimmt.

Und sry, ich habe nach dem for die öffnende Klammer übertippt. 😳
 
Der erste Gedanke, der mir kam, als ich den Konstruktor von Mannschaft gesehen habe, war: "Uhm, zu kompliziert, das muss übersichtlicher, eleganter gehen ...".

Durch Deine Aufgabenstellung ist ja bereits einiges vorgegeben bzw. einige Hinweise gegeben (Stichwort: Mannschaften, Begegnungen und die Liga). Allerdings verzichte ich entgegen der Aufgabenstellung auf die weiteren Attribute (siehe unten).

Was hat eine Mannschaft im engeren Sinne mit Punkten, Tordifferenzen und der gleichen zu tun? Antwort: Nichts. Diese ergeben sich erst aus den Begegnungen (Spielen) innerhalb der Liga. Das einzige Attribut, welches zu einer Mannschaft gehören sollte, ist ihr Name. Die restlichen Werte werden mittels spezialisierten Klassen gespeichert bzw. berechnet.

Auch zur eigenen Übung habe ich die Aufgabe ausprogrammiert. Insgesamt sind vier Klassen beteiligt (
Code:
Main
,
Code:
Team
,
Code:
EncounterResult
und
Code:
League
). Da es eine Hausaufgabe ist, werde ich lediglich die Verwendung durch die Klasse
Code:
Main
vorgeben.

Diese kann Dir ein kleiner Hinweis oder Richtschnur sein, wie man ein solches Programm strukturieren könnte.

Main.java
Java:
import java.util.List;

public class Main {

	public static void main(String[] args) {
		League bundesliga = new League();
		
		Team f95 = new Team("Fortuna Düsseldorf");
		Team fck = new Team("1. FC Köln");
		Team bvb = new Team("Borussia Dortmund");
		
		bundesliga.addTeam(f95);
		bundesliga.addTeam(fck);
		bundesliga.addTeam(bvb);
		
		bundesliga.addEncounterResult(new EncounterResult(f95, fck, 0, 0));
		bundesliga.addEncounterResult(new EncounterResult(bvb, f95, 3, 2));
		bundesliga.addEncounterResult(new EncounterResult(fck, bvb, 0, 4));
		
		List<Team> ranking = bundesliga.getTeamRanking();
		for(Team e : ranking) {
			printTeam(bundesliga, e);
		}
	}
	
	public static void printTeam(final League league, final Team team) {
		int pointsByTeam = league.getTotalPointsByTeam(team);
		int goalDiffByTeam = league.getTotalGoalDiffByTeam(team);
		System.out.println(
				"[ " + team.getName() + " ]" +
				" Punkte: " +
				Integer.toString(pointsByTeam) + " Tordifferenz: " +
				Integer.toString(goalDiffByTeam));
	}
}

Ausgabe:
Code:
[ Borussia Dortmund ] Punkte: 6 Tordifferenz: 5
[ Fortuna Düsseldorf ] Punkte: 1 Tordifferenz: -1
[ 1. FC Köln ] Punkte: 1 Tordifferenz: -4

Hinweis: Dies ist bei weitem keine optimale Lösung und enhält möglicherweise Fehler. Auch habe ich vom Fußball nur soviel Ahnung, als dass ich weiß, dass 22 Menschen versuchen, einen hilflosen Ball zu treten.

Ich verwende in der Implementierung an keiner Stelle "nackte" Arrays, sondern verwende Collections aus java.util. und deren Sortierfunktionen (siehe [JAPI]java.util.List[/JAPI], [JAPI]java.util.ArrayList[/JAPI], [JAPI]java.util.Collections[/JAPI] sowie [JAPI]java.util.Comparator[/JAPI]). :rtfm:

Ich hoffe, dies bringt dich ein wenig weiter.

Grüße ... bwbg
 
ich habe noch nicht so lange mit java zu tun und ich fände es interessant wie man noch die anderen Klassen programiert wer nett wenn sie mir helfen könnten
 
Hallo Redencool,

nur mal so, der Thread ist vom 18. Nov 2012, mach doch lieber einen neuen auf und beschreibe uns wo du noch Probleme hast, dann können wir dir bestimmt helfen.
Ach ja, "wer nett wenn sie mir helfen", ich glaube man ist hier das "Du" gewohnt, aber das Sie ist auch in Ordnung wenn du es unbedingt willst.

Mfg Major
 
Habe mir mal die mühe gemacht:
Java:
public class Team {

    String s;

    public Team(String s) {
        this.s = s;
    }

    String getName() {
        return s;
    }
}

public class EncounterResult {

    Team t1;
    Team t2;
    int i;
    int j;

    public EncounterResult(Team t1, Team t2, int i, int j) {
        this.t1 = t1;
        this.t2 = t2;
        this.i = i;
        this.j = j;
    }
}

public class League {

    ArrayList<Team> list = new ArrayList<>();
    ArrayList<EncounterResult> list2 = new ArrayList<>();

    void addTeam(Team t) {
        list.add(t);
    }

    void addEncounterResult(EncounterResult result) {
        list2.add(result);
    }

    List<Team> getTeamRanking() {
        return list;
    }

    /**
     * @todo !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
     * @param team
     * @return
     */
    int getTotalPointsByTeam(Team team) {
        int sum = 0;
        for (EncounterResult result : list2) {
            if (result.t1.s.equals(team.s)) {
                sum += result.i;
            }
            if (result.t2.s.equals(team.s)) {
                sum += result.j;
            }
        }
        return sum;
    }

    /**
     * @todo !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
     * @param team
     * @return
     */
    int getTotalGoalDiffByTeam(Team team) {
        int diff = 0;
        for (EncounterResult result : list2) {
            if (result.t1.s.equals(team.s)) {
                diff += result.j - result.i;
            }
            if (result.t2.s.equals(team.s)) {
                diff += result.i - result.j;
            }
        }
        return diff;
    }
}

public class Mannschaft {

    int Punkte, Tore, Gegentore, Tordifferenz, Siege, Unentschieden, Niederlagen, Spiele;
    String Name;

    Mannschaft(String nam, int p, int t, int gt, int diff, int s, int u, int n, int sp) {;
        Name = nam;
        Punkte = p;
        Tore = t;
        Gegentore = gt;
        diff = t - gt;
        Tordifferenz = diff;
        Siege = s;
        Unentschieden = u;
        Niederlagen = n;
        Spiele = sp;
    }

    public static void sortiere(int[] x) {
        boolean unsortiert = true;
        int temp;

        while (unsortiert) {
            unsortiert = false;
            for (int i = 0; i < x.length - 1; i++) {
                if (x[i] > x[i + 1]) {
                    temp = x[i];
                    x[i] = x[i + 1];
                    x[i + 1] = temp;
                    unsortiert = true;
                }
            }
        }
    }

    public static void main(String[] args) {
        Mannschaft fcbayernmuenchen = new Mannschaft("FC Bayern", 9, 3, 3, 3, 3, 3, 3, 3);

        Mannschaft borussiadortmund = new Mannschaft("Dortmund", 4, 1, 1, 1, 1, 1, 1, 1);
        //Mannschaft hamburgersv = new Mannschaft();
        Mannschaft eintrachtfrankfurt = new Mannschaft("Frankfurt", 6, 2, 2, 2, 2, 2, 2, 2);
        /*Mannschaft fcnuernberg = new Mannschaft();
    Mannschaft schalke = new Mannschaft();
    Mannschaft hannover = new Mannschaft();
    Mannschaft werderbremen = new Mannschaft();
    Mannschaft mönchengladbach = new Mannschaft();
    Mannschaft bayerleverkusen = new Mannschaft();
    Mannschaft fcaugsburg = new Mannschaft();
    Mannschaft vfbstuttgart = new Mannschaft();
    Mannschaft fsvmainz = new Mannschaft();
    Mannschaft scfreiburg = new Mannschaft();
    Mannschaft hoffenheim = new Mannschaft();
    Mannschaft fortunaduesseldorf = new Mannschaft();
    Mannschaft vflwolfsburg = new Mannschaft();
    Mannschaft greutherfuerth = new Mannschaft();           */

        int[] Tabelle = new int[3];
        Tabelle[0] = fcbayernmuenchen.Punkte;
        Tabelle[1] = borussiadortmund.Punkte;
        Tabelle[2] = eintrachtfrankfurt.Punkte;

        String[] Mannname = new String[3];
        Mannname[0] = fcbayernmuenchen.Name;
        Mannname[1] = borussiadortmund.Name;
        Mannname[2] = eintrachtfrankfurt.Name;

        sortiere(Tabelle);
        for (int i = 0; i < Tabelle.length; i++) {
            System.out.print(Mannname[i] + Tabelle[i] + "\n");
        }

        System.out.println("Name \t\tPunkte \t\tTordifferenz");
        System.out.println("----------------------------------------------------");
        System.out.println(fcbayernmuenchen.Name + "\t\t" + fcbayernmuenchen.Punkte + "\t\t" + fcbayernmuenchen.Tordifferenz);
        System.out.println(borussiadortmund.Name + "\t\t" + Tabelle[1] + "\t\t" + borussiadortmund.Tordifferenz);
        System.out.println(eintrachtfrankfurt.Name + "\t\t" + Tabelle[2] + "\t\t" + eintrachtfrankfurt.Tordifferenz);

    }
}

public class Main {

    public static void main(String[] args) {
        League bundesliga = new League();

        Team f95 = new Team("Fortuna Düsseldorf");
        Team fck = new Team("1. FC Köln");
        Team bvb = new Team("Borussia Dortmund");

        bundesliga.addTeam(f95);
        bundesliga.addTeam(fck);
        bundesliga.addTeam(bvb);

        bundesliga.addEncounterResult(new EncounterResult(f95, fck, 0, 0));
        bundesliga.addEncounterResult(new EncounterResult(bvb, f95, 3, 2));
        bundesliga.addEncounterResult(new EncounterResult(fck, bvb, 0, 4));

        List<Team> ranking = bundesliga.getTeamRanking();
        ranking.stream().forEach((e) -> {
            printTeam(bundesliga, e);
        });
    }

    public static void printTeam(final League league, final Team team) {
        int pointsByTeam = league.getTotalPointsByTeam(team);
        int goalDiffByTeam = league.getTotalGoalDiffByTeam(team);
        System.out.println(
                "[ " + team.getName() + " ]"
                + " Punkte: "
                + Integer.toString(pointsByTeam) + " Tordifferenz: "
                + Integer.toString(goalDiffByTeam));
    }
}

test.png

Erst hinterher ist mir aufgefallen, das Mannschaft mit den Klassen eigentlich nix zu tun hat...
 
Ich habe es gerade ausprobiert , aber er erkkent kein Array List.

Ich wollte eigentlich nur wissen wie man so ein Liga system programiert.
Vielen dank es hat mir sehr weiter geholfen
LG
 
ich habe mir mal die mühe gemacht so etwas zu coden:

Die Main Klasse:

Java:
package pack1;

import java.util.List;

public class Main {

    public static void main(String[] args) {
        League bundesliga = new League();

        Team FCB = new Team("FCB");
        Team BVB = new Team("BVB");
        Team S04 = new Team("S04");

        bundesliga.addTeam(FCB);
        bundesliga.addTeam(BVB);
        bundesliga.addTeam(S04);

        bundesliga.addEncounterResult(new EncounterResult(FCB, BVB, 0, 1));
        bundesliga.addEncounterResult(new EncounterResult(BVB, S04, 3, 2));
        bundesliga.addEncounterResult(new EncounterResult(S04, FCB, 0, 4));

        bundesliga.addEncounterResult(new EncounterResult(BVB, FCB, 1, 1));
        bundesliga.addEncounterResult(new EncounterResult(S04, BVB, 0, 2));
        bundesliga.addEncounterResult(new EncounterResult(FCB, S04, 1, 0));

        List<Team> ranking = bundesliga.getTeamRanking();
        ranking.stream().forEach((e) -> {
            printTeam(bundesliga, e);
        });
    }

    public static void printTeam(final League league, final Team team) {
        int pointsByTeam = league.getTotalPointsByTeam(team);
        int goalDiffByTeam = league.getTotalGoalDiffByTeam(team);
        int gamesByTeam = league.getTotalGamesByTeam(team);
        int goalsByTeam = league.getTotalGoalsByTeam(team);

        System.out.println("[ "
                + team.getName() + " ]" + " Pkt: "
               
                + Integer.toString(pointsByTeam) + "\t" + "\t"+ " Diff: "
                + Integer.toString(goalDiffByTeam) + "\t" + " Tore: "
                + Integer.toString(goalsByTeam) +  "\t"  + "Sp: "
                + Integer.toString(gamesByTeam));
    }
}
 
Die League Klasse:
Java:
package pack1;

import java.util.ArrayList;
import java.util.List;


public class League {

    ArrayList<Team> list = new ArrayList<>();
    ArrayList<EncounterResult> list2 = new ArrayList<>();

    void addTeam(Team t) {
        list.add(t);
    }

    void addEncounterResult(EncounterResult result) {
        list2.add(result);
    }

    List<Team> getTeamRanking() {
        return list;
    }

///////////////////////////////////////////////////////////////////
    int getTotalPointsByTeam(Team team) {
        int sum = 0;
        for (EncounterResult result : list2) {
            if (result.t1.s.equals(team.s)) {
                if (result.i > result.j) {
                    sum += 3;
                }
                if (result.i < result.j) {
                    sum += 0;
                }
                if (result.i == result.j) {
                    sum += 1;
                }
            }
            if (result.t2.s.equals(team.s)) {
                if (result.j > result.i) {
                    sum += 3;
                }
                if (result.j < result.i) {
                    sum += 0;
                }
                if (result.j == result.i) {
                    sum += 1;
                }
            }
        }
        return sum;
    }

////////////////////////////////////////////////////
    int getTotalGoalDiffByTeam(Team team) {
        int diff = 0;
        for (EncounterResult result : list2) {
            if (result.t1.s.equals(team.s)) {
                diff += result.i - result.j;
            }
            if (result.t2.s.equals(team.s)) {
                diff += result.j - result.i;
            }
        }
        return diff;
    }
///////////////////////////////////////////////////

    int getTotalGamesByTeam(Team team) {
        int spiele = 0;
        for(EncounterResult games : list2) {
            if(games.t1.s.equals(team.s)) {
                spiele++;
            }
            if(games.t2.s.equals(team.s)) {
                spiele++;
            }
        }

        return spiele;
    }
  
    int getTotalGoalsByTeam(Team team) {
        int tore = 0;
        for(EncounterResult result : list2) {
            if(result.t1.s.equals(team.s)) {
                tore+=result.i;
            }
            if(result.t2.s.equals(team.s)) {
                tore+=result.j;
            }
        }
        return tore;
    }
}
 
Die Team Klasse:
Java:
package pack1;

public class Team {

    String s;

    public Team(String s) {
        this.s = s;
    }

    String getName() {
        return s;
    }
}

und die EncounterResult klasse:
Code:
package pack1;

public class EncounterResult {

    Team t1;
    Team t2;
    int i;
    int j;

    public EncounterResult(Team t1, Team t2, int i, int j) {
        this.t1 = t1;
        this.t2 = t2;
        this.i = i;
        this.j = j;
    }
}
 
Als Ausgabe erhalte ich das:
Java:
[ FCB ] Pkt: 7         Diff: 4     Tore: 6    Sp: 4
[ BVB ] Pkt: 10         Diff: 4     Tore: 7    Sp: 4
[ S04 ] Pkt: 0         Diff: -8     Tore: 2    Sp: 4
 
@mihe7 Die Leiche ausgebuddelt hatte @Redencool .
@Clashgamer04 hat dann weitere Leichenschändung betrieben.

Nach 2 Jahren weiß ich auch nicht mehr um was es ging. 1 Jahr wäre ok gewesen aber 2 Jahre Rückerinnerungsvermögen abverlangt.... nicht leicht.

Ich weiß auch nicht mehr warum ich das aufgegriffen hatte und sogar ein KD erstellte.

Aber das als Anfang wäre besser:

CD1.png
@mihe7 Ich glaub geht um Fußball.
 
aber eine frage an dich: wie kann man die Teams sortieren, weil das da:
Java:
    List<Team> getTeamRanking() {
        return list;
    }
sortiert halt nichts
 
es soll nach punkten sortiert werden (wenn die gleich sind dann nach der Differenz und danach nach den geschossenden toren

Du implementierst halt einen entsprechenden Comparator und verwendest den, um die Liste zu sortieren. Also etwas wie:

Java:
void sort() {
    Collections.sort(list, new Comparator<Team>() {
        @Override public int compare(Team t1, Team t2) {
            int result = getTotalPointsByTeam(t1) - getTotalPointsByTeam(t2);
            if (result == 0) {
                result = getTotalGoalDiffByTeam(t1) - getTotalGoalDiffByTeam(t2);
            }
            if (result == 0) {
                result = getTotalGoalsByTeam(t1) - getTotalGoalsByTeam(t2);
            }
            return result;
        }
    });
}
 
aber wie würde sich dann folgenes verändern?
Java:
        List<Team> ranking = bundesliga.getTeamRanking();
        System.out.println(" ");
        ranking.stream().forEach((e) -> {
            printTeam(bundesliga, e);
        });
 
ja wie müsste das dann aussehen (also die ausgabe der Teams in der Reihenfolge)
Ich weiß nicht, was Du meinst. In getTeamRanking sortierst Du halt. Der Code für die Ausgabe ändert sich dann nicht.

Natürlich kannst Du Dir auch eine irgendwie sortierte Team-Liste zurückgeben lassen und dann mit dem Comparator (nennen wir ihn mal cmp) nur die Ausgabe sortieren, also etwa:

Java:
bundesliga.getTeams().stream().sorted(cmp).forEach(...)
 
ok andere sache
ich habe tic tac toe programmiert mit 6 teams und möchte die teams am ende nach punkten sortiert haben

bisher sieht das so aus:
Java:
            g.setFont(new Font("Arial", Font.BOLD, 30));
//Teamnamen           
 g.drawString(Names.Spieler1, 100, 100);
            g.drawString(Names.Spieler2, 100, 150);
            g.drawString(Names.Spieler3, 100, 200);
            g.drawString(Names.Spieler4, 100, 250);
            g.drawString(Names.Spieler5, 100, 300);
            g.drawString(Names.Spieler6, 100, 350);
//Spiele
            g.drawString("Sp.", 390, 60);
            g.drawString("" + Gui.Spieler1Spiele, 400, 100);
            g.drawString("" + Gui.Spieler2Spiele, 400, 150);
            g.drawString("" + Gui.Spieler3Spiele, 400, 200);
            g.drawString("" + Gui.Spieler4Spiele, 400, 250);
            g.drawString("" + Gui.Spieler5Spiele, 400, 300);
            g.drawString("" + Gui.Spieler6Spiele, 400, 350);
//Punkte
            g.drawString("Pkt.", 440, 60);
            g.drawString("" + Gui.Spieler1Punkte, 450, 100);
            g.drawString("" + Gui.Spieler2Punkte, 450, 150);
            g.drawString("" + Gui.Spieler3Punkte, 450, 200);
            g.drawString("" + Gui.Spieler4Punkte, 450, 250);
            g.drawString("" + Gui.Spieler5Punkte, 450, 300);
            g.drawString("" + Gui.Spieler6Punkte, 450, 350);

Auch wenn das halt nur die teams in reihenfolge auflistet

Ein Bild vom Ergebniss einer saison:
upload_2018-8-6_21-37-59.png
 

Neue Themen


Zurück
Oben