Home Moderne Zeiten Konstruktor und Destruktor Wahl der konkreten Attribute
 Das ATOS-Magazin 3/99
 ATOS Programmierpraxis
 Moderne Zeiten

Die fertige Spezifikation im Überblick

Die Spezifikation für das Fußballspieler-Speicherobjekt im Ganzen ergibt sich also wie folgt:


FUNCTION fussballspieler(name$,position&,staerke&)              !call
  '
  ' Diese Funktion legt ein Objekt des Typs fussballspieler an und
  ' gibt die Objektkennung zurück.
  '
  ' name$       => Name des Fußballspielers (bspw. "Lothar Matthäus")
  ' position&   => Position, auf der der Spieler besonders stark ist.
  '                     fussballspieler_position_tor_&
  '                     fussballspieler_position_abwehr_&
  '                     fussballspieler_position_mitte_&
  '                     fussballspieler_position_sturm_&
  ' staerke&    => Staerke des Spielers im Mittel.
  '                     (0 = sehr schlecht, 100 = sehr gut)
  '
ENDFUNC
PROCEDURE fussballspieler_init(ob#,name$,position&,staerke&)    !call
RETURN
PROCEDURE fussballspieler_exit(ob#)                             !call
RETURN
PROCEDURE fussballspieler_free(ob#)                             !call
  '
  ' Diese Prozedur entfernt ein Objekt des Typs fussballspieler aus
  ' dem Speicher.
  '
RETURN
FUNCTION fussballspieler_name$(ob#)                             !call
  '
  ' Ermittelt den Spielernamen.
  '
ENDFUNC
FUNCTION fussballspieler_tor(ob#)                               !call
  '
  ' Ermittelt die Tor-Stärke des Spielers.
  '
ENDFUNC
FUNCTION fussballspieler_abwehr(ob#)                            !call
  '
  ' Ermittelt die Abwehr-Stärke des Spielers.
  '
ENDFUNC
FUNCTION fussballspieler_mitte(ob#)                             !call
  '
  ' Ermittelt die Stärke im Mittelfeld des Spielers.
  '
ENDFUNC
FUNCTION fussballspieler_sturm(ob#)                             !call
  '
  ' Ermittelt die Sturm-Stärke des Spielers.
  '
ENDFUNC
PROCEDURE fussballspieler_tor_set(ob#,staerke&)                 !call
  '
  ' Setzt die Tor-Stärke des Spielers. Die Werte werden auf den
  ' Breich 0..100 gestutzt.
  '
RETURN
PROCEDURE fussballspieler_abwehr_set(ob#,staerke&)              !call
  '
  ' Setzt die Abwehr-Stärke des Spielers. Die Werte werden auf den
  ' Breich 0..100 gestutzt.
  '
RETURN
PROCEDURE fussballspieler_mitte_set(ob#,staerke&)               !call
  '
  ' Setzt die Stärke im Mittelfeld des Spielers. Die Werte werden auf
  ' den Breich 0..100 gestutzt.
  '
RETURN
PROCEDURE fussballspieler_sturm_set(ob#,staerke&)               !call
  '
  ' Setzt die Sturm-Stärke des Spielers. Die Werte werden auf den
  ' Breich 0..100 gestutzt.
  '
RETURN

Jetzt kann zum einen mit der Realisation, zum anderen aber auch bereits mit der Entwicklung von Programmteilen, die solche Objekte benutzen, begonnen werden.

Für die Vereins-Objekte legen wir nun noch die folgende Spezifikation fest:


FUNCTION verein(name$,staerke&)                                 !call
  '
  ' name$       => Vereinsname (bspw. "FC 08 Homburg")
  ' staerke&    => Stärke der Spieler des Vereins im Mittel.
  '                     (0 = sehr schlecht, 100 = sehr gut)
  '
  ' Außerdem sind die Namen der 11 aufzustellenden Fußballspieler zu
  ' übergeben. Diese Namen müssen dazu in DATA-Zeilen abgelegt werden
  ' und der _DATA-Zeiger muß mit RESTORE auf den ersten Namen gesetzt
  ' werden.
  '
ENDFUNC
PROCEDURE verein_init(ob#,name$,staerke&)                       !call
RETURN
PROCEDURE verein_exit(ob#)                                      !call
RETURN
PROCEDURE verein_free(ob#)                                      !call
RETURN
FUNCTION verein_name$(ob#)                                      !call
  '
  ' Ermittelt den Vereinsnamen.
  '
ENDFUNC
FUNCTION verein_spieler(ob#,spieler%)                           !call
  '
  ' Gibt den Spieler mit der Nummer spieler% aus der Aufstellung
  ' zurück (also dessen Objektkennung).
  '
ENDFUNC

Mit einem Befehl kann nun ein kompletter Verein mit 11 Spielern angelegt werden:

fch:
  DATA Franz
  DATA Bert,Hugo,Sascha
  DATA Markus,Frank,Theo,Daniel
  DATA Matthias,Andreas,Jürgen
  '
  RESTORE fch
  LET fch#=@verein("FC 08 Homburg",80)

Den Namen des Towarts vom FCH erhält man nun jederzeit durch den Aufruf:

  ' 0=Torwart .. 10=Mittelstürmer
  PRINT @fussballspieler_name$(@verein_spieler(fch#,0))

Sie sehen, daß sich die Benutzung sehr, sehr einfach gestaltet, was später beim Simulatorbau noch deutlicher werden wird. Die Mühen, die wir gleich einmalig in die Realisierung von Fußballspieler- und Vereinsobjekt stecken werden, holen wir dadurch leicht wieder heraus.





Wahl der konkreten Attribute


Copyright © ATOS
Letzte Aktualisierung am 7. November 1999

Home Moderne Zeiten Konstruktor und Destruktor Wahl der konkreten Attribute