BEREZUG.DOC documentation

BEREZUG.DOC accompanied the original Pascal include file. It describes the public procedures and functions supplied by BEREZUG.INC, including the evaluation routines, move generation, search procedure, and main entry point. The historical German text is reproduced first, followed by an English translation.

Original German documentation

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
DOKUMENTATION BereZug.Inc
-------------------------

Diese Include-Datei liefert die Prozedur "Berechne_Zug" nach den
dokumentierten Schnittstellen von den Protokollanten. Außerdem kann
auf die anderen Unterprozeduren zugegriffen werden. Diese sind
im Folgenden nochmals einzeln dokumentiert:


- PROCEDURE Materiell(Stellung:TSpielFeld;CFarbe:TFarbe;VAR Wert:Integer;
                      VAR Ende:Boolean);

  Liefert eine materielle Stellungsbewertung für die jeweilige Farbe;
  ist das Spiel beendet, so ist das "Ende"-Flag gesetzt und die
  Bewertung ist 32768 bei Gewinn für "CFarbe" bzw. -32767 bei deren
  Verlust. Es handelt sich hierbei um eine Differenzauszählung.
  Aufruf dieser Prozedur mit der jeweils anderen Farbe liefert deshalb
  ein negiertes Ergebnis gegenüber dem anderen.


- PROCEDURE Positionell(Stellung:TSpielFeld;CFarbe:TFarbe;VAR Wert:Integer);

  Liefert eine positionelle Bewertung der Stellung nach den positionellen
  Kriterien, die von uns vorher beschrieben wurden. Wie bei "Materiell"
  handelt es sich um eine Differenzbildung. Dieser Teil ist entscheidend
  für die Spielstärke verantwortlich und der Punkt, an dem noch am
  meisten verbessert werden kann.


- FUNCTION Bewertung(Stellung:TStellung;CFarbe:TFarbe):Integer;

  Liefert eine Gesamtbewertung (materiell+positionell) durch Aufruf der
  o.g. Prozeduren.


- FUNCTION Gegner(Farbe:TFarbe):TFarbe;

  Liefert uns die andere Spielfarbe. Wird von einigen der folgenden
  Prozeduren und Funktionen benutzt.


- PROCEDURE Finde_Zuege(Stellung:TStellung;Farbe:TFarbe;
                        VAR Zuege:TZugFeld;VAR ZugZahl:Byte);

  Liefert ein Feld, das alle möglichen Züge enthält (sorry, der Reim entstand
  nur zufällig). Greift auf "Eingabe_richtig" zurück.


- PROCEDURE Zug_Suche(Stellung:TStellung;Farbe:TFarbe;VAR Zug:TZug;
                      VAR Wert:Integer;Level:TLevel;Start:Boolean);

  Diese Prozedur ist das Herzstück der Prozedur "Berechne_Zug". Sie
  enthält die eigentliche Heuristik und greift dabei auf die oben
  beschriebenen Teile zurück. Sie greift dabei außerdem auf die
  Prozedur "Zug_ausfuehren" zu, um die verschiedenen Möglichkeiten
  durchzuspielen.


- PROCEDURE Berechne_Zug(Spielfeld:TStellung;VAR x,y:TKoord;
                         Spielerfarbe:TFarbe;Spielstaerke:TLevel);

  Diese Prozedur ruft "Zug_Suche" auf und stellt die Schnittstelle zum
  Hauptprogramm dar.

English translation

Documentation for BereZug.Inc

This include file provides the Berechne_Zug procedure according to the interfaces specified by the project coordinators. The other subordinate procedures can also be accessed. They are documented individually below.

Materiell

1
2
PROCEDURE Materiell(Stellung:TSpielFeld;CFarbe:TFarbe;VAR Wert:Integer;
                    VAR Ende:Boolean);

Returns a material evaluation of the position for the given color. If the game is over, the Ende flag is set and the evaluation is 32768 when CFarbe wins, or -32767 when that color loses. This is a differential count. Calling the procedure with the opposite color therefore returns the negated result.

Positionell

1
PROCEDURE Positionell(Stellung:TSpielFeld;CFarbe:TFarbe;VAR Wert:Integer);

Returns a positional evaluation of the position according to the positional criteria described earlier by the authors. Like Materiell, it computes a difference. This part is decisive for playing strength and is where the most improvement can still be made.

Bewertung

1
FUNCTION Bewertung(Stellung:TStellung;CFarbe:TFarbe):Integer;

Returns an overall evaluation—material plus positional—by calling the procedures described above.

Gegner

1
FUNCTION Gegner(Farbe:TFarbe):TFarbe;

Returns the opposing player color. It is used by several of the following procedures and functions.

Finde_Zuege

1
2
PROCEDURE Finde_Zuege(Stellung:TStellung;Farbe:TFarbe;
                      VAR Zuege:TZugFeld;VAR ZugZahl:Byte);

Returns an array containing all legal moves—the rhyme in the German original was accidental. It calls Eingabe_richtig to determine whether a move is valid.

Zug_Suche

1
2
PROCEDURE Zug_Suche(Stellung:TStellung;Farbe:TFarbe;VAR Zug:TZug;
                    VAR Wert:Integer;Level:TLevel;Start:Boolean);

This procedure is the heart of Berechne_Zug. It contains the actual heuristic and calls the parts described above. It also calls Zug_ausfuehren to play through the different possibilities.

Berechne_Zug

1
2
PROCEDURE Berechne_Zug(Spielfeld:TStellung;VAR x,y:TKoord;
                       Spielerfarbe:TFarbe;Spielstaerke:TLevel);

This procedure calls Zug_Suche and provides the interface to the main program.