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 ;(
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 ;(
Java:
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;
}
}
}
Zuletzt bearbeitet: