•  Back 
  •  Moderne Zeiten 
  •  Index 
  •  Tree View 
  •  Cross references 
  •  ATOS Hilfe 
  •  Show info about hypertext 
  •  View a new file 
Topic       : Das ATOS-Magazin 3/99
Author      : Das ATOS-Team
Version     : 12.11.1999
Subject     : ATOS Diskettenmagazine
Nodes       : 214
Index Size  : 7926
HCP-Version : 5
Compiled on : Atari
@charset    : atarist
@lang       : 
@default    : 
@help       : ATOS Hilfe
@options    : -i -s -h+zz -t2
@width      : 70
View Ref-File      ATOS Programmierpraxis
         Moderne Zeiten

Die fertige Spezifikation im Überblick           Das ATOS-Magazin 3/99

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