•  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 Operationen                                  Das ATOS-Magazin 3/99

Zurück zum Fußballmanager-Programm: Während des Spielverlaufs können 
sich die Stärken der Fußballspieler ändern: Spieler können trainiert 
werden, sie können Leistung abbauen, an Erfahrung gewinnen usw.

Aus diesem Grund bieten wir Operationen an, mit denen die 
Spielerstärken auf neue Werte gesetzt werden können:

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

Der Name eines Spielers kann sich im Spielverlauf hingegen nicht 
ändern, von daher wird auch keine Operation definiert, mittels derer 
er neu gesetzt werden kann.

An dieser Stelle kann man übrigens auch bei den Spielerstärken in 
Erwägung ziehen, gar nicht die Möglichkeit zu geben, sie von außen auf 
explizite Werte zu setzen. Stattdessen könnte man vielleicht auch die 
Operationen ...

PROCEDURE fussballspieler_training(ob#,pos&)                    !call
  '
  ' Ändert die Stärken des Spielers, wenn dieser am Training
  ' teilnimmt. (pos&: 0=allg., 1=Tor, 2=Abwehr, 3=Mitte, 4=Sturm)
  '
RETURN
PROCEDURE fussballspieler_spiel(ob#,pos&)                       !call
  '
  ' Ändert die Stärken des Spielers, wenn dieser an einem Spiel
  ' teilnimmt. (pos&: 0=allg., 1=Tor, 2=Abwehr, 3=Mitte, 4=Sturm)
  '
RETURN

... anbieten. Diese Funktionen sind nach außen hin nun ja sehr bequem 
zu benutzen.

Ferner ist es vielleicht gar nicht erwünscht, daß Prozeduren, die die 
Spielerstärken auf explizite Werte setzen können, außerhalb des 
Zuständigkeitsbereichs des Fußballspieler-Moduls fallen. Man denke 
auch an die "Word-Variable mit Zugriffszähler" aus dem ersten 
Kursteil, deren Zähler man zwar von außen abfragen, aber niemals 
selbst den Wert auf andere Weise ändern kann, als daß man lesend oder 
schreibend auf die Word-Variable zugreift und den Zähler dadurch 
inkrementieren läßt.

Hier konnte also aufgezeigt werden, wie man sich bei der 
Modulkonstruktion gegen die Außenwelt bei Bedarf absichern kann. Im 
ersten Kursteil wurde ja von einer "Einschränkung des Zugriffs auf das 
für die Benutzung Wesentliche" gesprochen. Dies wird an dieser Stelle 
sehr gut deutlich, denn "trainieren" und "spielen lassen" sind wohl 
die im wesentlich benutzen Operationen auf Fußballspielern.

Wir bleiben der Einfachheit halber aber bei der oben gemachten 
Spezifikation mit der Möglichkeit, alle Werte einzeln setzen zu 
können.





Konstruktor und Destruktor