# Hilfe bei Fußballmanager



## Jessica79 (6. Apr 2015)

Hallo,

ich übe mich gerade ein wenig in Java und habe hier folgendes Fußballspiel, das bei Gleichstand nach der Spielzeit in die Verlängerung gehen soll... bin ich auf dem richtigen Weg? Ich hoffe, ihr könnt mir weiterhelfen ;(


```
public class Freundschaftsfussballspiel {
	// Attribute
	private Mannschaft heimMannschaft;
	private Mannschaft gastMannschaft;
	private int punkteHeim;
	private int punkteGast;

	// get-Methoden
	public int getPunkteHeim() {
		return punkteHeim;
	}

	public int getPunkteGast() {
		return punkteGast;
	}

	public String getErgebnisText() {
		return " ERGEBNIS: \n\n    " + heimMannschaft.getName() + " - "
				+ gastMannschaft.getName() + " " + punkteHeim + ":"
				+ punkteGast + ".";
	}

	
	boolean torchance(Spieler s, Torwart t, int aktuelleZeit, Mannschaft m) {
		System.out.println("\n" + aktuelleZeit + ". Minute: ");
		System.out.println("    Chance fuer " + m.getName() + " ...");
		System.out.println("    " + s.getName() + " zieht ab");
		boolean tor = !t.haelt(s.schiesstAufTor());
		return tor;
	}

	public void starteSpiel(Mannschaft m1, Mannschaft m2) {
		heimMannschaft = m1;
		gastMannschaft = m2;
		punkteHeim = 0;
		punkteGast = 0;

		// Spielzeit betraegt 90 Minuten + Nachspielzeit + Verlängerung
		int spieldauer = 90 + (int) (Math.random() * 5);
		int zeit = 1;
		int naechsteAktion = (int) (Math.random() * 15) + 1;
        int verlaengerung = 30 + (int) (Math.random() * 5);
        
		// solange das Spiel laeuft, koennen Torchancen entstehen
		while (zeit + naechsteAktion <= spieldauer) {
			zeit = zeit + naechsteAktion;

			if (zeit + naechsteAktion >= spieldauer & punkteHeim == punkteGast) {
				zeit + naechsteAktion >= spieldauer + verlaengerung};
	
	// Staerke der beiden Mannschaften und Spielniveau berechnen
			double staerke1 = 0.8 * m1.getStaerke() + 0.15 * m1.getMotivation()
					+ 0.05 * m1.getTrainer().getErfahrung();
			double staerke2 = 0.8 * m2.getStaerke() + 0.15 * m2.getMotivation()
					+ 0.05 * m2.getTrainer().getErfahrung();
			double spielniveau = (int) (Math.random() * (Math.round(staerke1
					+ staerke2)));

			// zufaellige einen Torschuetzen bestimmen
			int schuetze = (int) (Math.random() * 10);

			// Angriff laeuft...
			if (spielniveau < staerke1) {// Mannschaft 1 greift an
				Spieler s = m1.getKader()[schuetze];
				if (torchance(s, m2.getTorwart(), zeit, m1)) {// Tor faellt
					punkteHeim++;
					s.addTor();
					System.out.println("    TOR!!!    " + punkteHeim + ":"
							+ punkteGast + "  " + s.getName() + " ("
							+ s.getTore() + ")");
				} else {// Tor faellt nicht
					System.out.println("    " + m2.getTorwart().getName()
							+ " pariert glanzvoll.");
				}

			} else {// Mannschaft 2 greift an
				Spieler s = m2.getKader()[schuetze];
				if (torchance(s, m1.getTorwart(), zeit, m2)) {// Tor faellt
					punkteGast++;
					s.addTor();
					System.out.println("    TOR!!!    " + punkteHeim + ":"
							+ punkteGast + "  " + s.getName() + " ("
							+ s.getTore() + ")");
				} else {// Tor faellt nicht
					System.out.println("    " + m1.getTorwart().getName()
							+ " pariert glanzvoll.");
				}

			}

			naechsteAktion = (int) (Math.random() * 15) + 1;
		}
	}
}
```


----------

