Fussballtabellen berechnen

Redencool

Mitglied
ich würde gerne eine Fußballtabelle programieren, wo man Ergebnisse eingibt, die danach in einer tabelle berechnet werden. Ich würde mich über Hilfe freuen.

LG
Marten
 

Soloeco

Aktives Mitglied
Moin,

hast du bereits Ansätze zu deinem Projekt? Bereits ein Stück Code? Und eine etwas genauere Erläuterung dessen was du programmieren möchtest wäre mir persönlich sehr hilfreich.
 

Redencool

Mitglied
Moin

Ich habe schon etwas angefangen.
Java:
import java.util.*;

class Fussballtabelle
{
  public static void main ( String[] args )
  {
 
    final int ENDSTAND = 3;
    Scanner scan = new Scanner( System.in );
 
    int DifA = 0,DifB = 0,DifC = 0,DifD = 0;
    int ScoreA = 0,ScoreB = 0,ScoreC = 0,ScoreD = 0;
    int ManschaftA = 0,ManschaftB = 0,ManschaftC = 0,ManschaftD = 0;
    int a,b,c,d;
    String TeamA, TeamB, TeamC, TeamD;
 
    System.out.println("Geben Sie ihr 1. Team ein");
    TeamA = scan.nextLine();
    System.out.println("Geben Sie ihr 2. Team ein");
    TeamB = scan.nextLine();
    System.out.println("Geben Sie ihr 3. Team ein");
    TeamC = scan.nextLine();
    System.out.println("Geben Sie ihr 4. Team ein");
    TeamD = scan.nextLine();

    System.out.println ("Das 1.Spiel beginnt in einem best of 5");
    while ( ManschaftA < ENDSTAND && ManschaftB < ENDSTAND )
    {
      System.out.println("Die Punkte von " + TeamA + ":");
      a = scan.nextInt();
   
      System.out.println("Die Punkte von " + TeamB + ":");
      b = scan.nextInt();
   
      if (a>b)
      {
        ManschaftA =  ManschaftA + 1;
        System.out.println("" + TeamA + " hat gewonnen!");
      }
      else
      {
        ManschaftB =  ManschaftB + 1;
        System.out.println("" + TeamB + " hat gewonnen!");
      }
      System.out.println("Score: " + TeamA + "-" + TeamB + " " + a + ":" + b + "\n");
    }

    System.out.println("Endstand:" + TeamA + "-" + TeamB + " " + ManschaftA + ":" + ManschaftB);

    if ( ManschaftB > ManschaftA )
    {
        ScoreB = ScoreB + 3;
        System.out.println("" + TeamB + " hat das 1. Spiel gewonnen!");
    }
    else
    {
        ScoreA = ScoreA + 3;
        System.out.println("" + TeamA + " hat das 1. Spiel gewonnen!");
    }
    System.out.println("Das 2. Spiel beginnt in e");
    while ( ManschaftC < ENDSTAND && ManschaftD < ENDSTAND )
    {
      System.out.println("Die Punkte von " + TeamC + ":");
      c = scan.nextInt();
   
      System.out.println("Die Punkte von " + TeamD + ":");
      d = scan.nextInt();
   
      if (c>d)
      {
        ManschaftC =  ManschaftC + 1;
        System.out.println("" + TeamC + " hat gewonnen!");
      }
      else
      {
        ManschaftD =  ManschaftD + 1;
        System.out.println("" + TeamD + " hat gewonnen!");
      }
      System.out.println("Score: " + TeamC + "-" + TeamD + " " + c + ":" + d + "\n");
    }
 
    System.out.println("Endstand:" + TeamC + "-" + TeamD + " " + ManschaftC + ":" + ManschaftD);

    if ( ManschaftC > ManschaftD )
    {
        ScoreC = ScoreC + 3;
        System.out.println("" + TeamC + " hat das 2. Spiel gewonnen!");
    }
    else
    {
        ScoreD = ScoreD + 3;
        System.out.println("" + TeamD + " hat das 2. Spiel gewonnen!");

    }
    DifA = (DifA-DifB);
    DifB = (DifB-DifA);
    DifC = (DifC-DifD);
    DifD = (DifD-DifC);

    int[] unsortiert = {ScoreA, ScoreB, ScoreC, ScoreD};
   int[] sortiert = selectionsort(unsortiert);

   for (int i = 0; i < sortiert.length; i++) {
           System.out.print(sortiert[i] + ", ");
       }
 
  }
  public static int[] selectionsort(int[] sortieren) {
       for (int i = 0; i < sortieren.length - 1; i++) {
           for (int j = i + 1; j < sortieren.length; j++) {
               if (sortieren[i] > sortieren[j]) {
                   int temp = sortieren[i];
                   sortieren[i] = sortieren[j];
                   sortieren[j] = temp;
               }
           }
       }
       return sortieren;
   }
  
      
   }
Man kann Teams eingeben die dann gegeneinander spielen in einem best of 5 . Aber ich weiß nicht wie die Ergebnisse dann in eine tabelle umgerechnet werden können. Ich habe es mal mit sortieren probiert, aber weiß nicht wie er dann in der Rheinfolge 1. Platz usw. herausgibt mit Punkten und der differenz

Danke für die Hilfe

LG
 
Zuletzt bearbeitet von einem Moderator:

Joose

Top Contributor
Willst du eine normale Tabelle wie sie in (fast) jeder Fußballliga angwendet wird? (3 Punkte für Sieg, 1 Punkt für Unentschieden, ...)
Wenn ja warum dann ein Best-of-5?
Anhand welcher Kriterien wird denn die Reihenfolge in der Tabelle festgelegt? Das kannst nur du uns sagen ;) ... Punkte, Tordifferenz, Auswärtstore, ...
 

Redencool

Mitglied
Ich möchte gerne das man zuerst im best of 5 spielt und dann werden zuerst die Punkte gewertet
3 Für den Sieg und 0 für die Niederlage (in einem best of 5 gibt es ja kein Unentschieden ) danach werden aus den siegen und Niederlagen der Runden die Differenz berechnet. Und danach sollten am besten noch die Tore gewertet werden

Danke für die Hilfe

LG
 

Joose

Top Contributor
Ich möchte gerne das man zuerst im best of 5 spielt und dann werden zuerst die Punkte gewerte
Schön zuerst best of 5, wer gegen wen? Was passiert danach?

3 Für den Sieg und 0 für die Niederlage (in einem best of 5 gibt es ja kein Unentschieden )
Bei einem Fußballspiel kann es ein unentschieden geben! Natürlich das Team die best of 5 Serie gewonnen, welches als erstes 3 Siege schafft.

danach werden aus den siegen und Niederlagen der Runden die Differenz berechnet. Und danach sollten am besten noch die Tore gewertet werden
Für was berechnest du dir die Differenz aus Siegen und Niederlagen? Was passiert dann damit?

Überlege dir mal genauer dein Konzept wie diese Liga funktionieren/ablaufen soll, was gewertet werden soll usw.
Wenn du das hast, kannst du dir Gedanken darüber machen welche Klasse du benötigst und welche Attribute die einzelnen Klassen haben sollten.

Auf die Art und Weise wie du es weiter oben gezeigt hast könnte es funktionieren, aber alles nur in der main Methode und ein paar statischen Methoden zu machen ist zu unübersichtlich.
Es ist unsinnig für jedes möglich Team eine Variable für den Namen, den Score, die Differenz usw. zu erstellen -> arbeite mit Klassen => objektorientierte Programmierung
 

Redencool

Mitglied
Ich weiß leider noch nicht so richtig wie das mit den Klassen funktioniert

Ich hatte das so gedacht, dass zuerst die Punkte gewertet werden. Die der Gewinner vom best of 5 bekommt

Danach wird die Differenz von siegen und Niederlagen gewertet die man mit dem Sieg minus die Niederlage rechnet

Danach werden die Tore addiert und bewertet

Danach die Gegentore

Das hier soll der erste Spieltag sein die Teams kann man ja eingeben hier spielt team A gegen Team B und team C gegen Team D
Und danach die Tabelle berechnet werden

Ich werde gleich mal gucken wenn ich Zeit habe wie das mit den Klassen richtig funktioniert

Danke für die Hilfe
 

Redencool

Mitglied
Moin
ich habe jetzt etwas weiter gemacht. Leider erkennt er den Compare nicht

were Nett wenn ihr mir sagen könntet warum

Java:
import java.util.*;
import java.util.Arrays;
public class Fussballtabelle
{
    public static void main ( String[] args )
    {

        final int ENDSTAND = 3;
        Scanner scan = new Scanner( System.in );

        int DifA = 0,DifB = 0,DifC = 0,DifD = 0;
        int ScoreA = 0,ScoreB = 0,ScoreC = 0,ScoreD = 0;
        int ManschaftA = 0,ManschaftB = 0,ManschaftC = 0,ManschaftD = 0;
        int a,b,c,d;
        String TeamA, TeamB, TeamC, TeamD;

        System.out.print("Geben Sie Ihr 1. Team ein: ");
        TeamA = scan.nextLine();
        System.out.print("Geben Sie Ihr 2. Team ein: ");
        TeamB = scan.nextLine();
        System.out.print("Geben Sie Ihr 3. Team ein: ");
        TeamC = scan.nextLine();
        System.out.print("Geben Sie Ihr 4. Team ein: ");
        TeamD = scan.nextLine();

        System.out.println ("Das 1.Spiel beginnt in einem best of 5");
        while ( ManschaftA < ENDSTAND && ManschaftB < ENDSTAND )
        {
            System.out.print("Die Punkte von " + TeamA + ": ");
            a = scan.nextInt();
            System.out.print("Die Punkte von " + TeamB + ": ");
            b = scan.nextInt();
            if (a>b)
            {
                ManschaftA =  ManschaftA + 1;
                System.out.println("" + TeamA + " hat gewonnen!");
            }
            else
            {
                ManschaftB =  ManschaftB + 1;
                System.out.println("" + TeamB + " hat gewonnen!");
            }
            System.out.println("Score: " + TeamA + "-" + TeamB + " " + a + ":" + b + "\n");
        }

        System.out.println("Endstand:" + TeamA + "-" + TeamB + " " + ManschaftA + ":" + ManschaftB);

        if ( ManschaftB > ManschaftA )
        {
            ScoreB = ScoreB + 3;
            System.out.println("" + TeamB + " hat das 1. Spiel gewonnen!");
        }
        else
        {
            ScoreA = ScoreA + 3;
            System.out.println("" + TeamA + " hat das 1. Spiel gewonnen!");
        }
        System.out.println("Das 2. Spiel beginnt in einem Best of 5");
        while ( ManschaftC < ENDSTAND && ManschaftD < ENDSTAND )
        {
            System.out.print("Die Punkte von " + TeamC + ": ");
            c = scan.nextInt();

            System.out.print("Die Punkte von " + TeamD + ": ");
            d = scan.nextInt();

            if (c>d)
            {
                ManschaftC =  ManschaftC + 1;
                System.out.println("" + TeamC + " hat gewonnen!");
            }
            else
            {
                ManschaftD =  ManschaftD + 1;
                System.out.println("" + TeamD + " hat gewonnen!");
            }
            System.out.println("Score: " + TeamC + "-" + TeamD + " " + c + ":" + d + "\n");
        }

        System.out.println("Endstand:" + TeamC + "-" + TeamD + " " + ManschaftC + ":" + ManschaftD);

        if ( ManschaftC > ManschaftD )
        {
            ScoreC = ScoreC + 3;
            System.out.println("" + TeamC + " hat das 2. Spiel gewonnen!");
        }
        else
        {
            ScoreD = ScoreD + 3;
            System.out.println("" + TeamD + " hat das 2. Spiel gewonnen!");

        }
        DifA = (DifA-DifB);
        DifB = (DifB-DifA);
        DifC = (DifC-DifD);
        DifD = (DifD-DifC);
     
       
        Team T1 = new Team(ScoreA, DifA);
        System.out.println("T1: " + T1.getScore());
        Team T2 = new Team(ScoreB, DifB);
        System.out.println("T2: " + T2.getScore());
        Team T3 = new Team(ScoreC, DifC);
        System.out.println("T3: " + T3.getScore());
        Team T4 = new Team(ScoreD, DifD);
        System.out.println("T4: " + T4.getScore());

        Team[] Team = { T1, T2, T3, T4 };
        Arrays.sort(Team);
        for (int i = 3; i > Team.length; i--) {
            System.out.println(Team[i].getScore());
        }
    }
}




class Team implements Comparable<Object> {
    int Score;
    int Dif;
   

    public Team(int Score, int Dif) {
        this.Score = Score;
        this.Dif = Dif;
       
    }

    public int compareTo(Object T) {
        if (((Team) T).getScore() == 3 && this.getScore() == 3) {
            return 0;
        }
        if (this.getScore() == 3) {
            return 1;
        }
        if (((Team) T).getScore() == 3) {
            return -1;
        }
        return this.getScore().compareTo(((Team) T).getScore());
    }

    public int getScore() {
        return Score;
    }

    public int getDif() {
        return Dif;
    }

   
}

Danke für die Hilfe
 

Joose

Top Contributor
Leider erkennt er den Compare nicht
Heißt was genau? Er sortiert gar nicht? Sortiert falsch?

Bei deiner compareTo Methode hast du außerdem noch einen Denkfehler:
Java:
    public int compareTo(Object T) {
        if (((Team) T).getScore() == 3 && this.getScore() == 3) {
            return 0;
        }
        if (this.getScore() == 3) {
            return 1;
        }
        if (((Team) T).getScore() == 3) {
            return -1;
        }
        return this.getScore().compareTo(((Team) T).getScore());
    }
Warum vergleichst du auf "==3"? Nach der 2.Runde kann der Score auf 6 steigen, nach der dritten auf 9 usw. ;)
Du willst ja wissen welcher Score höher ist: Also musst du die beiden Scores miteinander vergleichen! Schauen ob sie gleich sind, einer größer bzw. einer kleiner ist als der andere (nicht ob sie 3 sind)
 

Redencool

Mitglied
Das hier ist ja so zu sagen der 1. Spieltag also kann der höchste score 3 sein.

Ob er falsch oder gar nicht sortiert weiß ich nicht ich bekomme nur immer eine Meldung:

int cannot be dereferenced

Ich weiß noch nicht so richtig was das heißen soll
 

Joose

Top Contributor
Das hier ist ja so zu sagen der 1. Spieltag also kann der höchste score 3 sein.
Das schon, aber du wirst nicht für jeden Spieltag eine neue Klasse Team schreiben bzw. die "compareTo" Methode umschreiben oder?
Und wie schon gesagt du willst die beiden Teams miteinander vergleichen. In deiner "compareTo" Methode vergleichst du die Scores der Teams mit 3 aber nicht miteinander.

Ob er falsch oder gar nicht sortiert weiß ich nicht ich bekomme nur immer eine Meldung:

int cannot be dereferenced

Ich weiß noch nicht so richtig was das heißen soll
Dann nimm diese Meldung und google sie --> https://www.google.at/search?q=int+...firefox-b&gfe_rd=cr&ei=_PFcWLfVB4qm8wefsYrADw
Schon der 1.Link (http://stackoverflow.com/questions/19109131/int-cannot-be-dereferenced-in-java) sagt dir was das Problem ist.

getScore() liefert dir ein int zurück, von primitiven Datentypen können keine Methoden aufgerufen werden!
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
M OOP Brüche nicht richtig berechnen Java Basics - Anfänger-Themen 3
V Durchschnittliche Volatility in Prozent für 4 Stunden berechnen Java Basics - Anfänger-Themen 14
T Fibonacci mit einer Hilfsmethode berechnen Java Basics - Anfänger-Themen 10
laxla123 Quersumme berechnen Java Basics - Anfänger-Themen 1
I For Schleife Summe berechnen Java Basics - Anfänger-Themen 13
S Vollmond berechnen und ausgeben Java Basics - Anfänger-Themen 12
S Vollkommene Zahl berechnen und ausgeben Java Basics - Anfänger-Themen 16
A Berechnen Moor Nachbarschaft Java Basics - Anfänger-Themen 5
E Geburtstag im Schaltjahr berechnen Java Basics - Anfänger-Themen 24
Lion.King Schaltjahr berechnen Java Basics - Anfänger-Themen 31
E Alter (Laufzeit) berechnen Java Basics - Anfänger-Themen 11
I Zuschläge berechnen Java Basics - Anfänger-Themen 15
L mit Fakultät mathematische Formel berechnen Java Basics - Anfänger-Themen 5
TanTanIsTrying Durschnitt berechnen von eingegebener Zahl bis 1 heruntergezählt Java Basics - Anfänger-Themen 9
L Präfix berechnen Java Basics - Anfänger-Themen 33
F Abstand zwischen zwei Objekten berechnen wie? Java Basics - Anfänger-Themen 1
Aemulit Java Schaltjahr berechnen Code Java Basics - Anfänger-Themen 7
Poppigescorn Quersumme Berechnen mit einer While Schleife Java Basics - Anfänger-Themen 13
I Potenz berechnen mit for-Schleife Java Basics - Anfänger-Themen 3
A Standardabweichung in Java berechnen Java Basics - Anfänger-Themen 10
H Gesamtabweichung mit Array berechnen Java Basics - Anfänger-Themen 2
G Java Rabatt berechnen Java Basics - Anfänger-Themen 8
V Rückgeld berechnen Java Basics - Anfänger-Themen 6
eleonori Durchschnitt aller Werte eines Baums berechnen Java Basics - Anfänger-Themen 5
Ianatrix Zahlen von a bis b berechnen Java Basics - Anfänger-Themen 7
L Max, min, Summe und Durchschnitt berechnen Java Basics - Anfänger-Themen 4
L Anhalteweg berechnen Java Basics - Anfänger-Themen 6
Aeon Erste Schritte Preise berechnen mit do-while Java Basics - Anfänger-Themen 9
M Quadratwurzel berechnen Java Basics - Anfänger-Themen 8
V Wachstum berechnen und in Ist-Formel verwenden Java Basics - Anfänger-Themen 5
N Variable aus anderen Variablen in statischer Klasse berechnen/abspeichern? Java Basics - Anfänger-Themen 4
M Abschreibungsplan berechnen Java Basics - Anfänger-Themen 23
V Gehalt berechnen in Java Java Basics - Anfänger-Themen 6
justemii Gehalt berechnen - Aufgabe Java-Programm Java Basics - Anfänger-Themen 9
L Anzahl der benachbarten Minen berechnen und setzen Java Basics - Anfänger-Themen 15
J Array Speicherplatz berechnen Java Basics - Anfänger-Themen 35
H Eingabedaten berechnen Java Basics - Anfänger-Themen 9
B Tranportkosten berechnen mit unterschiedlichen MwSt Java Basics - Anfänger-Themen 9
L Anzahl der Paare deren Summe = 0 ergibt berechnen Java Basics - Anfänger-Themen 0
V Erste Schritte Berechnen von Sinus; sin(x) ohne Math.* Java Basics - Anfänger-Themen 1
J Hilfe bei Java Aufgabe (Restschuld berechnen) Java Basics - Anfänger-Themen 11
N Ein Datum berechnen Java Basics - Anfänger-Themen 3
T Sparplan berechnen Java Basics - Anfänger-Themen 4
F Abstand zum Durchschnitt von 5 Zahlen berechnen... Java Basics - Anfänger-Themen 16
B java.util.Date berechnen Java Basics - Anfänger-Themen 11
P Mittelwert Arrayelemente berechnen Fehler Java Basics - Anfänger-Themen 5
CptK Best Practice Schussparabel berechnen Java Basics - Anfänger-Themen 3
T Modulo / Pow berechnen Java Basics - Anfänger-Themen 4
E Statistische Kennzahlen berechnen Java Basics - Anfänger-Themen 2
F Switch Case Modulo berechnen Java Basics - Anfänger-Themen 12
B mehrere Werte mit scanner und while schleife einlesen, max berechnen bzw addieren Java Basics - Anfänger-Themen 2
C Preis berechnen mit Java Java Basics - Anfänger-Themen 4
B Zahl in String abspeichern und später berechnen Java Basics - Anfänger-Themen 15
N Best Practice Image recognition fuzzy Superhash berechnen Java Basics - Anfänger-Themen 1
Dawinartor Erste Schritte Schaltjahr berechnen Java Basics - Anfänger-Themen 1
L Pi berechnen Java Basics - Anfänger-Themen 1
CptK Term (als String) berechnen und ausgeben Java Basics - Anfänger-Themen 10
L Den Winkel zwischen zwei Vektoren berechnen! Java Basics - Anfänger-Themen 2
J Variablen arithmetischen Mittelwert berechnen Java Basics - Anfänger-Themen 5
K Matrixen berechnen nach Worker Master Paradigma mit Threads Java Basics - Anfänger-Themen 4
R Winkel berechnen bzw. Geraden sortieren Java Basics - Anfänger-Themen 33
I Schnittpunkt zweier Geraden berechnen Java Basics - Anfänger-Themen 25
M Erste Schritte Mittelwert berechnen -> Methode in der Methode? Java Basics - Anfänger-Themen 14
S Compiler-Fehler Schaltjahr berechnen Java Basics - Anfänger-Themen 5
B Fakultätsfunktion Rekursiv Berechnen aber mit Array Java Basics - Anfänger-Themen 10
S Durchschnitt berechnen aus zwei Textfeldern Java Basics - Anfänger-Themen 21
D Summe berechnen mit verändertem Wert aus Schleife Java Basics - Anfänger-Themen 1
R Liga Berechnen Java Basics - Anfänger-Themen 1
P Klassen Berechnen mehrerer Map-Werte Java Basics - Anfänger-Themen 13
J Fibonacci -Folge rekursiv berechnen Java Basics - Anfänger-Themen 18
J Durchschnitt jeder Zeile und und Spalte in einem 2D Arrays berechnen Java Basics - Anfänger-Themen 6
F ISBN Prüfziffer berechnen Java Basics - Anfänger-Themen 17
F Die Teilersumme einer Eingabe berechnen Java Basics - Anfänger-Themen 11
S Negafibonacci Folge berechnen Java Basics - Anfänger-Themen 24
G Array Mittelwert berechnen, wie? Java Basics - Anfänger-Themen 8
S Primzahlen berechnen funktioniert nicht richtig Java Basics - Anfänger-Themen 1
N Mit LocalDate alter berechnen Java Basics - Anfänger-Themen 3
J Laufzeit berechnen/Laufzeitanalyse Java Basics - Anfänger-Themen 2
N Arrays mit Zufallzahlen füllen und Statistiken berechnen Java Basics - Anfänger-Themen 5
A Wochentag berechnen Java Basics - Anfänger-Themen 10
Ste3et_C0st Vectoren berechnen Java Basics - Anfänger-Themen 8
L Durchschnitt in der Schleife berechnen Java Basics - Anfänger-Themen 11
A Kreisumfang/-Fläche vom Kreis berechnen Java Basics - Anfänger-Themen 39
L Wochentag berechnen Java Basics - Anfänger-Themen 5
L Rekursive Methode a * b berechnen Java Basics - Anfänger-Themen 2
B OOP Summe aus verschiedenen Instanzen einer Klasse berechnen Java Basics - Anfänger-Themen 2
N Dauer zwischen zwei LocalDateTime Objekten berechnen? Java Basics - Anfänger-Themen 4
P Ausdrücke berechnen Java Basics - Anfänger-Themen 2
V Mittelwert berechnen Java Basics - Anfänger-Themen 31
H Datentypen Tage zwischen zwei Datums berechnen Java Basics - Anfänger-Themen 4
P Quadrate berechnen Java Basics - Anfänger-Themen 3
S OOP Datumsunterschied in Tagen berechnen Java Basics - Anfänger-Themen 3
M Methoden Aus Timestamp das Datum berechnen Java Basics - Anfänger-Themen 3
B Schaltjahre berechnen! Java Basics - Anfänger-Themen 1
A werte in einem String berechnen Java Basics - Anfänger-Themen 3
F Checksummen aus int-Array berechnen Java Basics - Anfänger-Themen 3
F Toto-Tipp-Reihen berechnen Java Basics - Anfänger-Themen 1
N Threads Exception in thread "main"... Feher bei dem Versuch ein Radius zu berechnen Java Basics - Anfänger-Themen 4
R Quersumme berechnen - Methodenproblem Java Basics - Anfänger-Themen 1
S Button "Berechnen" geht nicht Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben