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-FileATOS ProgrammierpraxisModerne ZeitenDie fertige Spezifikation im Überblick Das ATOS-Magazin 3/99Die 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