next up previous contents
Nächste Seite: Schluss Aufwärts: Die Implementierung Vorherige Seite: Operationen auf dem Spielfeld   Inhalt

Hilfsfunktionen

Abbildung 7: Konvertierungsfunktionen
\begin{figure}\small\begin{verbatim}(defun phutball-convert-coords (l)
''Conv...
...) 0))))
(concat as (number-to-string y))))\end{verbatim}\normalsize\end{figure}

Eine Vielzahl von Hilfsfunktionen sind nötig. Die beudeutendsten sind die Konvertierungsfunktionen. Ein Emacs-Buffer verwendet ein Koordinatensystem welches von dem Phutball-Koordinatensystem verschieden ist. Ausserdem werden in dem Major Mode zur Darstellung der Phutball-Koordinaten ein Tupel von zwei Zahlen verwendet, der Spielserver verwendet jedoch ein Tupel aus einem Buchstaben und einer Zahl. Es sind also zwei Transformationen nötig. Die Transformation von der Darstellung als Tupel zweier Zahlen in Emacs-Koordinaten wurde bereits diskutiert, dies erledigt die Funktion phutball-goto-xy implizit. Die inverse Transformation wird von den beiden Funktionen phutball-point-x und phutball-point-y erledigt.

Die Funktionen zur Transformation der Phutballkoordinaten von der Repräsentation des Spielservers in die Repräsentation in diesem Major Mode und umgekehrt werden in der Abbildung 7 gezeigt.

Die Funktion phutball-display-field wird aufgerufen, sobald die Filterfunktion die Parameter des Spielfeldes von dem Spielserver erfahren hat, und sie stellt das Koordinatensystem dar.

phutball-new-game ermöglicht es dem Benutzer, ein neues Spiel zu beginnen. Das alte Spiel wird dabei zerstört.

Zuletzt existieren noch drei weitere Informationsfunktionen, phutball-set-playername, phutball-set-movecount und phutball-display-time. Die erste zeigt die Namen der beiden Spieler in einer Statuszeile unter dem Spielfeld, und wird von der Filterfunktion aufgerufen, nachdem diese die Namen der Spieler ermittelte. Die zweite zeigt die Anzahl der bisher durchgeführten Spielzüge des Spielers. Die Funktion phutball-display-time wird pro Sekunde einmal aufgerufen7 und zeigt die verbleibende Restzeit des Spielers an, und tut nichts, wenn der Gegner am Zug ist.


next up previous contents
Nächste Seite: Schluss Aufwärts: Die Implementierung Vorherige Seite: Operationen auf dem Spielfeld   Inhalt
Robert Hoehndorf 2002-08-22