Vorlesung: Praxis der Funktionalen Programmierung | Index

Generische Module für Brettspiele

Spielmaterial

Generische Darstellung von Spielen

Für jedes Spiel definiert man einen Brett-Typ B und erklärt ihn zu Instanzen von Brett (für den Schiedsrichter)

und Bild (für den Anzeiger)

Informationsaustausch

Es sollen Programme sowohl gegeneinander als auch gegen einen Bediener spielen.

Der Schiedsrichter schickt Nachrichten zu den Spielern, diese antworten (eine Nachricht -> eine Antwort, der Einfachheit halber). Modell ist das Go-Modem-Protokoll.


Ein Spieler ist ein Zustandstransformer, der noch in IO gepackt ist.


Warum? Zustand braucht er vielleicht, um sich von einem zum nächsten Zug Informationen zu merken (also nicht kompletten Spielbaum neu ausrechen etc). IO braucht er, weil wir auch externe Programme als Spieler einbauen wollen, die werden dann mit system von einem kleinen Haskell-Treiber aufgerufen. Das geht nur mit IO.

Wettkampf-Organisation

Der Schiedsrichter, der die Spieler auf den Platz schickt ( Quelltext - ASCII-Version) Das Schiedsrichterprogramm ist völlig generisch: es hängt erstens nicht von der Art des Spiels (Typ des Bretts) ab, und zweitens nicht von den Spielern (Typ ihres Zustands).

best viewed with any browser


http://www.informatik.uni-leipzig.de/~joe/ mailto:joe@informatik.uni-leipzig.de