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!
 

Volvagia

Top Contributor
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)
 

Hey

Mitglied
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?
 

Volvagia

Top Contributor
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.
 

Hey

Mitglied
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:

Volvagia

Top Contributor
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. :oops:
 

bwbg

Mitglied
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
 

Redencool

Mitglied
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
 

Major_Sauce

Bekanntes Mitglied
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
 
X

Xyz1

Gast
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...
 

Redencool

Mitglied
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
 

Clashgamer04

Mitglied
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));
    }
}
 

Clashgamer04

Mitglied
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;
    }
}
 

Clashgamer04

Mitglied
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;
    }
}
 

Clashgamer04

Mitglied
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
 
X

Xyz1

Gast
@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.
 

Clashgamer04

Mitglied
aber eine frage an dich: wie kann man die Teams sortieren, weil das da:
Java:
    List<Team> getTeamRanking() {
        return list;
    }
sortiert halt nichts
 

mihe7

Top Contributor
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;
        }
    });
}
 

Clashgamer04

Mitglied
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);
        });
 
X

Xyz1

Gast
Den Code vor 2 Jahren habe ich weggeschmissen....
Könntest du mir das nochmal von Scratch geben?
 

mihe7

Top Contributor
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(...)
 

Clashgamer04

Mitglied
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
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
N Hey Leute und zwar versuche ich gerade ein 2D Spiel zu Programmieren aber die Figur will sich nicht nach links oder rechts bewegen :( Java Basics - Anfänger-Themen 12
B OOP was heißt objektorientiertes Programmieren (fragt ein absoluter Anfänger) Java Basics - Anfänger-Themen 17
laxla123 Rechteck programmieren Java Basics - Anfänger-Themen 4
A Erste Schritte Dynamische Stempel im PDF Exchange programmieren Java Basics - Anfänger-Themen 0
D Programmieren nach UML Java Basics - Anfänger-Themen 2
Y Taschenrechner programmieren Java Basics - Anfänger-Themen 3
B Überweisung programmieren Java Basics - Anfänger-Themen 7
bluetrix Programmieren eines Bots für Zahlen-Brettspiel Java Basics - Anfänger-Themen 9
D Ampel Programmieren die jede 10 sekunden ihre farbe wechselt Java Basics - Anfänger-Themen 6
J ArrayList add methode selbst programmieren Java Basics - Anfänger-Themen 10
00111010101 Objektorientiertes Programmieren mit Vererbung (Zahlen in Array verschwinden) Java Basics - Anfänger-Themen 3
thor_norsk Fernseher programmieren mit Java Java Basics - Anfänger-Themen 4
M Jenga Regeln Java Programmieren Java Basics - Anfänger-Themen 1
M Ressourcensparend programmieren Java Basics - Anfänger-Themen 3
brypa Wie Programmieren lernen? Java Basics - Anfänger-Themen 15
G Spielerwechsel programmieren Java Basics - Anfänger-Themen 1
J Solitär (Brettspiel) programmieren Java Basics - Anfänger-Themen 3
H Objektorientiertes Programmieren Java Basics - Anfänger-Themen 4
K 12- Stunden Konverter Programmieren Java Basics - Anfänger-Themen 1
WAB9703-04 Programm zum automatischen Ausfüllen von Formularen programmieren Java Basics - Anfänger-Themen 3
L Zahlenspiel programmieren Java Basics - Anfänger-Themen 1
TimoN11 Automat programmieren Java Basics - Anfänger-Themen 4
G Erste Schritte Array Mittelwert Methode Programmieren Java Basics - Anfänger-Themen 5
ehmo würfelspiel programmieren anfänger Java Basics - Anfänger-Themen 1
N Ufospiel programmieren Java Basics - Anfänger-Themen 13
KogoroMori21 Vorbereitung auf die Programmieren Klausur vom ersten Semester Java Basics - Anfänger-Themen 4
Drinkerbell Erste Schritte Zu blöd zum Programmieren? Java Basics - Anfänger-Themen 9
G Stack programmieren Java Basics - Anfänger-Themen 6
I Brauche Hilfe bei Objektorientiertem programmieren Java Basics - Anfänger-Themen 23
T Auf einem Schachbrett bewegen programmieren Java Basics - Anfänger-Themen 2
G Bruchrechner programmieren Java Basics - Anfänger-Themen 6
G Ufo Spiel programmieren Java Basics - Anfänger-Themen 13
D Schachbrett (8x8) programmieren Java Basics - Anfänger-Themen 3
J Spiel programmieren Java Basics - Anfänger-Themen 16
J Hilfe beim Programmieren Java Basics - Anfänger-Themen 5
S Kreisberechnung3 Buch: Programmieren lernen mit Java von Hans-Peter Habelitz Java Basics - Anfänger-Themen 39
M Quiz in Java programmieren mit Array Java Basics - Anfänger-Themen 8
S Spiel-Programmieren. Wenn ein Objekt den anderen berührt. Java Basics - Anfänger-Themen 6
K Java programmieren Java Basics - Anfänger-Themen 6
V_Fynn03 Kontrolle des Quelltextes (Bank programmieren)(GUI) Java Basics - Anfänger-Themen 6
D Was tun gegen zu komplzierten Denken beim Programmieren Java Basics - Anfänger-Themen 27
V_Fynn03 Bruchrechner programmieren (2 Klassen) Java Basics - Anfänger-Themen 9
N Ticketautomat programmieren Java Basics - Anfänger-Themen 63
M Rechner programmieren Java Basics - Anfänger-Themen 3
V_Fynn03 Java Bruchrechner programmieren Java Basics - Anfänger-Themen 13
J Java Suchfunktion Programmieren Java Basics - Anfänger-Themen 1
L Erste Schritte Bin ich "zu dumm" oder nicht geeignet zum Programmieren? Java Basics - Anfänger-Themen 3
U Ist jemad gut in programmieren (JAVA) und kann mir helfen? Java Basics - Anfänger-Themen 1
H Uhr programmieren Java Basics - Anfänger-Themen 10
T Schalter programmieren Java Basics - Anfänger-Themen 17
S Ampel Programmieren Java Basics - Anfänger-Themen 5
P Erste Schritte Probleme mit dem Programmieren Java Basics - Anfänger-Themen 12
D Richtig für Programmieren an der UNI lernen Java Basics - Anfänger-Themen 8
B Folgende Abfrage dynamisch programmieren? Java Basics - Anfänger-Themen 8
D Beim Programmieren auf die Logisch einfache Lösung kommen. Java Basics - Anfänger-Themen 17
B UML Klassen Diagramm zu Java Code Programmieren und ausführen Java Basics - Anfänger-Themen 21
steven789hjk543 Kann man mit Java und Eclipse einen Virus programmieren? Java Basics - Anfänger-Themen 13
S Spiel programmieren mit Java Java Basics - Anfänger-Themen 11
A Kalender programmieren, ich finde meinen Fehler nicht. Java Basics - Anfänger-Themen 9
S Erste Schritte Hilfe beim lernen von Programmieren Java Basics - Anfänger-Themen 2
V Zeichenkette programmieren Java Basics - Anfänger-Themen 20
O Fenster programmieren Java Basics - Anfänger-Themen 2
R Uebersichtlicher bzw. besser Programmieren Java Basics - Anfänger-Themen 13
N Dynamisches Programmieren/Fibonacci Java Basics - Anfänger-Themen 1
B Spielfiguren für ein Beute-Jägerspiel programmieren Java Basics - Anfänger-Themen 12
A Programmieren lernen Java Basics - Anfänger-Themen 28
F ArrayListe manuell programmieren? Java Basics - Anfänger-Themen 24
X Erste Schritte Einstieg ins Programmieren Java Java Basics - Anfänger-Themen 2
O Erste Schritte ln(1+x) Reihe Programmieren Java Basics - Anfänger-Themen 6
Ellachen55 Weihnachtsbaum in Eclipse programmieren Java Basics - Anfänger-Themen 6
L Klassen Geldrückgabe - Aufgabe Programmieren Java Basics - Anfänger-Themen 23
H Stern Dreieck (Buch: Grundkurs Programmieren) Java Basics - Anfänger-Themen 2
V Variablen Vorkommen programmieren Java Basics - Anfänger-Themen 18
S Dreieckssignal programmieren Java Basics - Anfänger-Themen 5
K Fehler beim Programmieren von TicTacToe Java Basics - Anfänger-Themen 12
M Spiel programmieren Java Basics - Anfänger-Themen 16
A Fenster programmieren Java Basics - Anfänger-Themen 1
V OOP Kassensystem objektorientiert programmieren Java Basics - Anfänger-Themen 15
A Erste Schritte DoodleJump programmieren: Kollisionsabfrage Java Basics - Anfänger-Themen 4
CT9288 Kleine Simulation programmieren, denkanstöße erbeten Java Basics - Anfänger-Themen 19
H Welche IDE zum Buch "Programmieren mit Java" von Reinhard Schiedermeier des Verlags Pearson Studium Java Basics - Anfänger-Themen 19
D Könnt ihr mir helfen beim Programmieren eines Ping Pong Spieles? Java Basics - Anfänger-Themen 9
M Rekursive Methode Programmieren Java Basics - Anfänger-Themen 3
I Spielbrett programmieren: Datenstruktur Java Basics - Anfänger-Themen 3
G Rekursives Programmieren --> harmonische Reihe Java Basics - Anfänger-Themen 3
A Endlich anfangen mit Programmieren ! Java Basics - Anfänger-Themen 8
L Karawane programmieren Java Basics - Anfänger-Themen 0
kokojamboo92 Spiel programmieren Java Basics - Anfänger-Themen 1
E Mastermind programmieren, wie den falschen Platz aber richtige Farbe schecken? Java Basics - Anfänger-Themen 23
steven789hjk543 Erste Schritte java programmieren/ Schritt für Schritt Java Basics - Anfänger-Themen 14
I Spiel programmieren. Java Basics - Anfänger-Themen 16
H [Studium] Mäxchenspiel programmieren Java Basics - Anfänger-Themen 10
C BlueJ Zahlenschloss programmieren Java Basics - Anfänger-Themen 5
steven789hjk543 mit dem Smartphone java programmieren Java Basics - Anfänger-Themen 44
F Okjektorientiert programmieren Java Basics - Anfänger-Themen 2
S OOP Ticketsystem programmieren Java Basics - Anfänger-Themen 6
P Selber Programmieren lernen oder Uni? Java Basics - Anfänger-Themen 12
P Kasse programmieren Java Basics - Anfänger-Themen 12
D Timer programmieren Java Basics - Anfänger-Themen 13
M Erste Schritte Einfache Aufzugssteuerung programmieren - Anfänger Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben