# SoccerTeam



## Benjamin31 (11. Jan 2012)

Hallo!
Ich muss ein Programm schreiben, welches einzelne Spieler in ein Team hinzufügt und dann einen Code erstellen, welcher anzeigt wenn ein Team ein Tor geschossen hat oder ein Gegentor gefallen ist. Die Aufgabenstellung schaut so aus.

Schreiben Sie jetzt einen Testklasse SoccerMatch mit main Methode, in der Sie die 2 Teams Bayern München und 1860 München erzeugen.
Für die Bayern spielen in der Reihenfolge des Arrays:
String[] bayernNames = { "Rensing", "Sagnol", "Lucio","Ribery","Altintop", "Roberto", "Ottl",
"Bommel","Luca", "Klose","Podolski" };
Für die 60er:
String[] sechzigerNames = { "Hofmann", "Berhalter","Hoffmann","Thorhandt", "Bierofka",
"Schwarz","Bender", "Ledgerwood","Di Salvo", "Lauth", "Holebas" };

Fügen Sie die Spieler in die jeweiligen Teams ein. (Verwenden Sie eine Schleifen Anweisung um die Spieler über addPlayer() einzufügen.)

Erstellen Sie nun Code um Tore, die im Spiel fallen, zu modellieren (goal()und goalAgainst().

Es fallen folgende Tore:
 Bayern schießt ein Tor (Spieler 3)
 60er schießen ein Tor (Spieler 11)
 Bayern gehen in Führung (Spieler 6)
 60er holen auf (Spieler 10)
 60er schießen noch ein Tor (Spieler 10)
 Bayern gleichen aus (Spieler 9);

Mein Code lautet zur Zeit so...


```
/**
 * This class uses classes SoccerPlayer and SoccerTeam to represent a soccer
 * match between Bayern München und 1860 München.
 */
public class SoccerMatch {

    /**
     * This is the main method.
     * 
     * @param args
     * Command line arguments (unused)
     */
    
    @SuppressWarnings("null")
    
    public static void main(String[] args) {
        
        /* the names of players in Bayern München - nicht aktuell */
        
        String[] bayernNames = { "Rensing", "Sagnol", "Lucio", "Ribery",
                "Altintop", "Roberto", "Ottl", "Bommel", "Luca", "Klose",
                "Podolski" };
        
        /* the names of players in München 1860 - nicht aktuell */
        
        String[] sechzigerNames = { "Hofmann", "Berhalter", "Hoffmann",
                "Thorhandt", "Bierofka", "Schwarz", "Bender", "Ledgerwood",
                "Di Salvo", "Lauth", "Holebas" };

        String werderTeamInfo = "Werder Bremen | Thomas Schaaf |5";
        String werderPlayer = "Wiese * Boenisch * Naldo * Fritz * Prödl";

        for (int i = 0; i <= bayernNames.length; i++) {
            SoccerTeam Bayern = null;
            Bayern.addPlayer(bayernNames[i]);
        
        } 
        for (int j = 0; j <= sechzigerNames.length; j++) {
            SoccerTeam Sechziger = null;
            Sechziger.addPlayer(sechzigerNames[j]);
        }
    }

    // TODO create <code>SoccerTeam</code> Objects of both Teams

    // TODO add all players (from above defined String arrays) to the both teams

    // TODO "play the game" by calling <code>goal()</code> and
    // <code>goalAgainst()</code> methods

    // TODO print out the both teams
}
```

kann mir jemand weiterhelfen?


----------



## timbeau (11. Jan 2012)

Du brauchst eine Klasse Team, die Attribute erhält, die ein Fußballteam so haben kann. 

*Name
*Mannschaft
*...
*Trainer etc

Ein Attribut Name ist logisch, ein String.

Eine Mannschaft kann für den Anfang eine Struktur sein, die nur die Namen der Spieler als String speichert. Z.B. wieder ein Array. 

Eine toString-Methode ist auch schnell erstellt. 


```
@Overwrite
public String toString(){
        return ????;
}
```


----------



## Benjamin31 (11. Jan 2012)

Die Klasse Team hab ich schon...
Die schaut so aus


```
import java.util.StringTokenizer;

/** 
 * This class represents a soccer team. 
 */
public class SoccerTeam {
        /** list of team players */
        private SoccerPlayer [] players;
        /** name of a team */
        private String teamName;
        /** name of a trainer */
        private String trainerName;
        /** current position in the league */
        private int position;
        /** current number of shot goals */
        private int goalsShot;
        /** current number of received goals */
        private int goalsReceived;
        /** the position of the next player to be added */
        private int nextPlayerPosition;
        
        

        /**
         * Constructor to generate a soccer team
         * 
         *  @param name
         *         name of a team
         *  @param trainer
         *         name of a trainer
         *  @param pos
         *         a current position of a team
         */  
        public SoccerTeam(String name, String trainer, int pos) {
                //TODO implement a method
        }

        
               /**
         * Constructor to generate a soccer team
         * 
         *  @param teamInfo
         *                      team info separated by |
         *  @param playerInfo
         *                      name of players of the team separated by *
         */  
        public SoccerTeam(String teamInfo, String playerInfo) {
            String delim = "|";
            String delim2 = "''";
            StringTokenizer st = new StringTokenizer (teamInfo);
            teamName = st.nextToken();
            trainerName = st.nextToken();
            setPosition(Integer.parseInt (st.nextToken()));
            goalsShot = Integer.parseInt (st.nextToken());
            goalsReceived = Integer.parseInt (st.nextToken());
                //TODO implement a method
        }
        
        
        /** 
         * Adds a player into a team on the position 
         * <code>nextPlayerPosition + 1</code>. 
         * 
         * Players cannot be added in the full team (with 11 players). 
         * In that case, the error massage should appear.
         * 
         *  @param playerName
         *                      name of a player to be added
         */
        
       private SoccerPlayer [] playerList = new SoccerPlayer[11];
       private int size = 0;
       
        public void addPlayer(String name){
            if (size == playerList.length)
                return;
            for (int i = 0; i < playerList.length; i++) {
                if (playerList[i] == null) {
                    playerList[i] = players[i];
                    size++;
                    return;
                }
            }
             
                //TODO implement a method
        }
        

        /** 
         * Increases the number of goals for the player with number 
         * <code>playerNumber</code> and the value of the attribute 
         * <code>goalsShot</code>.
         * 
         * @param playerNumber
         *        number of the player who scored a goal
         */
     
        public void goal(int playerNumber) {
                goalsShot = goalsShot + 1;
                players[playerNumber - 1]increaseGoalCount();               
                //TODO implement a method
        }
           private void increaseGoalCount() {
            // TODO Auto-generated method stub
        }

        /** 
         * Increases a number of received goals. 
         */
        public void goalAgainst() {
           goalsReceived = goalsReceived + 1;
                
                //TODO implement a method
        }

        /** 
         * Prints out the current ratio.
         * 
         * @return the current ration in the form:
         *                      <code>goalsShot : goalsReceived</code>
         */
        public String ratioString() {
            String help = String.valueOf (goalsShot);
            String help2 = String.valueOf (goalsReceived);
            String help3 = help + ":" + help2;
            
            return help3;
                //TODO implement a method
        }

        /**
         * Represents a team in a form of String, e.g.:
         * Soccer team: (team)
         * Trainer: (trainer)
         * Current position: (position)
         * Ratio: (ratio)
         * Players: 
         *      (list of players)
         * 
         * @return a String representation of a team
         */
        public String toString() {
                StringBuilder c = new StringBuilder ();
                c.insert (0, "Teamname");
                c.append(teamName);
                c.append("Trainername: ");
                c.append(trainerName);
                c.append("Geschossene Tore: ");
                c.append(goalsShot);
                c.append("erhaltene Tore: ");
                c.append(goalsReceived);
                c.append(ratioString());
                c.append("Players");
                for (int i = 0; i < 11; i++) {
                    c.append("");
                    return c.toString();
                }
                return teamName;
                //TODO implement a method
        }


        public SoccerPlayer[] getPlayers() {
            return players;
        }


        public void setPlayers(SoccerPlayer[] players) {
            this.players = players;
        }


        public int getPosition() {
            return position;
        }


        public void setPosition(int position) {
            this.position = position;
        }


        public int getNextPlayerPosition() {
            return nextPlayerPosition;
        }


        public void setNextPlayerPosition(int nextPlayerPosition) {
            this.nextPlayerPosition = nextPlayerPosition;
        }
}
```


----------



## HimBromBeere (11. Jan 2012)

du hast deine Teams - wenn ich das richtig gesehen hab - gar nicht initialisiert, also woas wie SoccerTeam team1 = new SoccerTeam(name);

Bei dir steht da nur = null, was normalerweise beoim Aufruf von .addPlayer eine NULLPointerException werfen sollte...


EDIT:
Mehr Info möchte ich dir nicht geben, erst, wenn du endlich anständige Teams verwendest...


----------

