Tabelle sortieren für WM-Tippspiel

wmgame

Grünschnabel
Hallo,

ich habe ein kleines WM-Tippspiel erstellt, das die Ergebnisse verschiedener Begegnungen simuliert.

Man kann also zum Beispiel mehrere Begegnungen in einer Spielgruppe (4 Mannschaften) tippen und ein Spielergebnis wird automatisch per Zufall ausgegeben.

Jetzt möchte ich eine Spieltabelle erstellen welche die 4 Mannschaften in einer Gruppe automatisch entsprechend ihrer erziehlten Gesamtpunktzahl (Sieg = 3 Punkte; Unentschieden = 1 Punkt) ordnet. Falls zwei Mannschaften die gleiche Punktzahl haben soll auf das Torverhältnis geschaut werden.

Ich habe jedoch leider keine Ahnung wie ich so etwas realisieren soll, da wir in der Schule erst mit Java angefangen haben :-(

Kann mir da jemand helfen oder hat zumindest einen Tipp für mich?

Wäre echt nett.

Viele Grüße
 
Hi,

da das eine Oberflächenfrage ist, bist du damit im falschen Unterforum. HIer wäre besser. ;)

Darüber hinaus wäre wichtig, ob du mit Swing oder SWT arbeitest.


Grüße
Carron
 
Hi,

es wäre nützlich wenn du uns ein bisschen mehr Informationen liefern könntest. Und zwar, was genau du schon hast und und was du noch haben möchtest, bzw. wo genau dein Problem ist/du nicht weiterkommst. Und auch Neben-Informationen wie z.B. wie du die Tipps abspeicherst, in einer Datei oder einer Datenbank?

Ohne diese Informationen und ohne eine genau Fehler-Position können wir dir leider nicht helfen.

Gruß

Matt
 
Um zumindest schon einmal einen Ansatz zu liefern:

Wenn du keine weiteren Sortierbestrebungen auf deiner Tabelle zulässt/vornimmst, dann stehen die Einträge in der Reihenfolge von oben nach unten, wie du sie einfügst. Wenn du also deine Mannschaften zuvor schon sortierst, ist es keine Frage der Oberfläche mehr.

Möchtest du diese Reihenfolge allerdings erst beim Einfügen in die Tabelle realisieren, gibt es (sowohl in Swing als auch in SWT) die Möglichkeit beim Einfügen eines Tabelleneintrages dessen Position explizit mit anzugeben.


Ersteres wäre meiner Meinung nach allerdings zu bevorzugen und sehe wohl etwa so aus:

Java:
private List<Mannschaft> rankTeams(Mannschaft[] teams) {
    List<Mannschaft> result = new ArrayList<Mannschaft>();
    for (Mannschaft singleTeam : teams) {
        for (int i = 0; i <= result.size(); i++) {
            if (i == result.size()) {
                // Mannschaft ist vorerst Tabellenletzte
                result.add(singleTeam);
            } else if (result.get(i).getScore() < singleTeam.getScore()) {
                /*
                 * erste Mannschaft mit weniger Punkten gefunden,
                 * davor einfuegen.
                 */
                result.add(singleTeam, i);
                // weiter suchen macht keinen Sinn fuer diese Mannschaft
                break;
            } else if (result.get(i).getScore() == singleTeam.getScore()) {
                // punktgleiche Mannschaft gefunden
                if (result.get(i).getGoalDifference() < singleTeam.getGoalDifference()) {
                    /*
                     * punktgleiche Mannschaft hat schlechtere Tordifferenz,
                     * davor einfuegen
                     */
                    result.add(singleTeam, i);
                    // weiter suchen macht keinen Sinn fuer diese Mannschaft
                    break;
                } else if ((result.get(i).getGoalDifference() == singleTeam.getGoalDifference()) &&
                            (result.get(i).getGoals() < singleTeam.getGoals())) {
                    /*
                     * punktgleiche Mannschaft hat gleiche Tordifferenz, aber weniger Tore geschossen,
                     * davor einfuegen
                     */
                    result.add(singleTeam, i);
                    // weiter suchen macht keinen Sinn fuer diese Mannschaft
                    break;
                }
            }
        }
    }
    return result;
}

Man könnte zwar die Else-Bedingungen alle zusammenfassen (schließlich wird in allen Fällen das gleiche gemacht), aber zur Übersicht habe ich diese hier noch getrennt.


Ich hoffe das ist ungefähr, was du wolltest ;)


Viele Grüße & Gute Nacht
Carron
 
Zurück