Fernschach¶
Alles andere in Blunderbase ist die Aufzeichnung einer gespielten Partie. Fernschach ist die, die gerade gespielt wird: ein Zug alle paar Tage, über Monate, auf dem ICCF-Server oder überall sonst, wo man so viel Zeit bekommt. Die Arbeit steckt nicht in der Zugliste, sondern im Baum der Kandidatenzüge dahinter – und den hält dieser Bildschirm fest.
Der Modus ist aus, bis du ihn unter Analyse → Fernschach einschaltest, siehe Analyse. Ist er an, steht Fernschach in der Seitenleiste unter Live; ist er aus, gibt es den Eintrag nicht und die Seiten schicken dich zur Übersicht zurück.
Die Liste¶
Vier Abschnitte, immer in dieser Reihenfolge, die drei Partielisten jeweils mit ihrer Anzahl:
| Abschnitt | Enthält |
|---|---|
| Du bist am Zug | Partien, die auf dich warten, nächste Frist zuerst |
| Warten auf den Gegner | Dein Zug ist abgeschickt, es ist nichts zu tun |
| Läuft gerade | Jede Engine auf jeder Partie, eine Zeile je Suche – siehe Läuft gerade |
| Beendet | Die letzten paar, jede ein Link auf die Partie in deiner Bibliothek |
Eine Zeile nennt beide Spieler und welche Farbe deine ist, das Turnier, Zugnummer und letzten Zug, wie viele Tage dir bis zur Antwort bleiben – rot unter zwei, negativ, wenn du zu spät bist – und die Bewertung der Stellung, in der die Partie steht, aus Weiß' Sicht, welche Farbe du auch hast. Dazu ein Chip je Engine, die an dieser Partie arbeitet, mit der Tiefe oder Knotenzahl, bei der sie steht – so sagt die Liste auf einen Blick, wohin die Rechenzeit deines Rechners geht.
Unter der Überschrift steht die Kapazitätsleiste; in der Titelleiste stehen Neue Partie, PGN importieren und Alles pausieren.
Eine Partie anlegen¶
Neue Partie fragt ab, was eine Fernschachpartie ausmacht:
| Feld | |
|---|---|
| Weiß, Schwarz | Die Namen, so geschrieben wie auf dem Server |
| Du spielst | Weiß oder Schwarz. Pflichtangabe: Zugrecht und alle Fristen werden davon aus gerechnet |
| Turnier | Das Turnier, es landet im PGN-Header Event |
| Link | Die Partieseite auf dem Server, gespeichert als Site |
| ICCF-Nummer | Die Partienummer. Mit ihr ist die Quelle der Partie ICCF und die Nummer identifiziert sie; ohne sie ist es eine manuelle Partie und sonst dasselbe |
| Bedenkzeit | Freier Text, wie das Turnier sie angibt: 10 Tage/Zug, 40 Tage/10 Züge |
| Startstellung | Eine FEN, für ein Thematurnier. Leer ist die gewöhnliche Grundstellung |
| Antwort fällig | Wann dein nächster Zug fällig ist, so wie der Server es anzeigt. Leer heißt keine Frist – Blunderbase rechnet nie eine aus, siehe Die Züge eintragen |
PGN importieren nimmt den Text, den der Server exportiert – eingefügt in das Feld –, und
füllt dieselben Felder aus den Headern: die Züge werden die gespielte Linie, Event und
Site kommen aus dem PGN, solange du sie nicht überschreibst. Für eine laufende Partie ist
das der schnellere Weg.
Eine Partie, die die Bibliothek schon hat, wird abgewiesen statt doppelt gespeichert – dieselbe ICCF-Nummer, oder dieselben zwei Namen am selben Tag mit denselben Zügen.
Die Züge eintragen¶
Zwei Schaltflächen in der Kopfzeile bewegen die Partie, beide um genau einen Zug:
- Gegner hat gezogen… trägt den Zug ein, der angekommen ist.
- Diesen Zug spielen nimmt den Zug, den du im Baum ausgewählt hast, und das ist dein Zug. Hier wird er aufs Brett gelegt; abgeschickt wird er weiterhin dort, wo die Partie läuft.
Die Frist trägst du selbst ein. Die einzige Uhr ist die des Servers, auf dem die Partie läuft – der ICCF führt ein Konto an Tagen und schreibt pro Zug etwas gut, andere Server machen es auf ihre Weise –, und eine hier geratene Zahl würde Du bist am Zug und die Warteschlange nach einer Fiktion sortieren. Kommt also der Zug des Gegners an, lies das Datum von der Seite des Servers ab und trag es in das Feld in der Kopfzeile ein; bis dahin ist nichts fällig. Spielst du deinen Zug, wird die Frist gelöscht: Sie galt diesem Zug, und solange der Gegner denkt, gibt es keine.
Letzten Zug zurücknehmen macht einen versehentlich eingetragenen Zug rückgängig. Der Zug bleibt im Baum, mit seinen Kommentaren und allem, was darunter analysiert wurde; er gehört nur nicht mehr zur gespielten Linie.
Der Baum¶
Die mittlere Spalte, und der Sinn des Bildschirms. Die gespielten Züge sind das Rückgrat; jeder andere eingetragene Zug hängt eingerückt unter dem Zug, den er beantwortet. Spiel einen Zug auf dem Brett, und er kommt in den Baum: gibt es den Ast schon, gehst du hinein, gibt es ihn nicht, wird er angelegt. Die Pfeiltasten laufen durch den Baum – links und rechts an einer Linie entlang, hoch und runter durch die Alternativen. Fährst du mit der Maus über einen Zug, zeigt das Brett seine Stellung, mit den nächsten Zügen des Baums als Pfeile, und die Auswahl bleibt, wo sie war – so lässt sich eine Linie lesen, indem du den Zeiger an ihr entlangführst; ein Klick macht die Stellung zu deiner.
Jeder Knoten zeigt seinen Zug, seine Bewertung und die Bewertung, die seine eigenen Äste zurückgeben:
- Eigen ist das, was eine Engine über diese Stellung sagt.
- Gestützt ist das, was dein Baum wirklich belegen kann: das Minimax über die Kinder, die eine Zahl haben. Weichen beide voneinander ab, zeigt der Knoten beide und einen Pfeil, der die Richtung nennt – dieser Abstand ist der ganze Grund, einen Baum zu führen. Eine eigene Bewertung über der gestützten heißt genau das: der erste Vorschlag der Engine ist vier Züge tiefer widerlegt.
- Ein bernsteinfarbenes ≠ sagt, dass zwei Engines in dieser Stellung mehr als einen halben Bauern auseinanderliegen – die Zahl darunter ist also weniger wert, als sie aussieht.
- Daneben sagt ein Knoten, was gerade mit ihm geschieht: ein Spinner, solange eine Engine auf ihm sitzt, eine Warteschlangenmarke, solange eine Aufgabe wartet, und eine Veraltet-Marke, wenn die gezeigte Zahl zu flach erreicht wurde oder von einer Engine stammt, die du nicht mehr hast – siehe Aufgaben und Erweitern.
- Eine Notizmarke sagt, dass du zu dieser Stellung etwas geschrieben hast – Notizen, im Unterschied zum Zugkommentar, der unter der Zeile selbst steht. Wähl den Zug aus, und die Notizen stehen unter dem Brett, siehe Notizen und das Buch.
Jede Zahl auf diesen Bildschirmen steht aus Weiß' Sicht, wie ein Bewertungsbalken immer:
+0,41 heißt, Weiß steht besser, wer auch immer gezogen hat, und −0,30 nach einem
schwarzen Zug heißt, Schwarz steht besser. Eine Spalte, die du den Baum hinunter liest,
behält so ihr Vorzeichen. Was die Farbe der zurückgerechneten Zahl sagt, betrifft den
Ziehenden: Bernstein – der Zug wurde weiter unten widerlegt, die Variante darunter ist für
die Seite, die ihn gemacht hat, schlechter als die eigene Zahl der Engine versprach; Grün –
er hat sich als besser erwiesen, als er aussah.
Das Menü eines Knotens trägt die Verben:
| Verb | |
|---|---|
| Suchen mit … | Eine Engine auf diese Stellung ansetzen, siehe Eine Stellung rechnen lassen |
| Aufgabe einreihen … | Ein begrenzter Blick auf diese Stellung, über die Analysewarteschlange, mit der Engine, die du wählst, siehe Aufgaben und Erweitern |
| Erweitern … | Die besten Züge hier zu Kindern machen und unter jedes eine Aufgabe legen |
| Teilbaum auffrischen … | Auf jeder veralteten Stellung von hier abwärts eine Aufgabe einreihen, mit der Engine, die du wählst |
| Kommentieren | Deine Anmerkung zum Zug; sie geht als Kommentar ins PGN |
| Markieren | Dein Urteil über den Zug, siehe unten |
| Nach vorn holen | Diesen Zug zur ersten seiner Alternativen machen, damit er als Hauptzug gelesen wird |
| Teilbaum löschen | Diesen Zug und alles darunter vergessen. Die Wurzel und ein tatsächlich gespielter Zug lassen sich nicht löschen |
Markierungen sind dein Wort, nicht das der Engine, und jede hat ihr Zeichen:
| Markierung | Zeichen |
|---|---|
| Gut | ! |
| Interessant | !? |
| Fragwürdig | ?! |
| Schlecht | ? |
| Ausgeschlossen | ✕ |
Linien, die die Partie verlassen hat – die Alternativen zu einem Zug, den der Gegner nicht gespielt hat –, werden ausgegraut und nicht entfernt. Sie kosten nichts und sind der Beleg dafür, was du dir angesehen hast; Teilbaum löschen steht bereit, wenn ein Ast wirklich erledigt ist.
Ein Zug mit Linien darunter trägt am Ende seiner Zeile ein −; ein Klick klappt diese
Linien ein, und das +, das an seine Stelle tritt, sagt, wie viele Stellungen verborgen
sind. Das Einklappen gehört zur Linie, nicht zu deinem Browser: Es wird mit dem Knoten
gespeichert, der Baum, den du auf einem Rechner aufgeräumt hast, ist also auch auf dem
nächsten aufgeräumt, und es funktioniert auch bei einer beendeten Partie. Eine eingeklappte
Linie öffnet sich von selbst, solange die ausgewählte Stellung in ihr liegt.
PGN exportieren schreibt den ganzen Baum heraus: die gespielte Linie als Hauptvariante,
jeden anderen Knoten als Variante unter dem Zug, den er beantwortet, deine Kommentare als
Kommentare, deine Markierungen als NAGs und die Bewertung jedes Knotens als
{[%eval 0.25]} – in der Schreibweise von Lichess, damit jedes Programm, das sie kennt, die
Zahlen anzeigt. Eine Startstellung bleibt als FEN-Header erhalten.
Eine Stellung rechnen lassen¶
Die rechte Spalte sind die Engines: ein Feld je Engine, die den ausgewählten Knoten gerade rechnet oder schon ein Urteil zu ihm hinterlassen hat, gestapelt untereinander. Suchen mit … oben in der Spalte setzt eine weitere Engine auf die Stellung.
Zur Auswahl steht jede Engine, die eingeschaltet ist und UCI spricht, auf diesem Rechner und auf deinen Runnern; vorgeschlagen wird die mit der Rolle Analyse. Eine Suche auf der Engine eines Remote Runners läuft dort drüben, belegt einen Slot dieses Runners statt einen dieses Rechners und wird hier genau wie eine lokale gelesen. Die, auf denen keine Suche laufen kann, sind ausgegraut statt versteckt und sagen unter dem Zeiger, warum: ein Runner, der nicht verbunden ist, einer, dessen Verbindung Warteschlangenarbeit trägt, aber keine Suche (ein Browser-Tab, oder ein Runner, der auf Polling zurückgefallen ist), eine Engine, die kein Brett bedienen kann, und eine, deren Programmdatei verschwunden ist, nennt den Ort, an dem sie gesucht wurde. Maia ist nie dabei: ein Blick ohne Suche ergibt eine Verteilung von Zügen, keine Variante.
Eine Suche auf einem Runner überlebt es, wenn der Runner wegbleibt. Die Tafel sagt wartet auf Host, die Zeile behält ihren Platz, und wenn der Runner sich wieder verbindet, beginnt die Suche erneut an ihrem letzten Checkpoint – der Prozess dort drüben ist mit der Verbindung gestorben, verloren ist also der Hash. Pause auf einem Runner ist warm, wenn der Runner aktuell ist (der Prozess wird dort geparkt), und kalt auf einem älteren, der geschlossen und beim Fortsetzen neu geöffnet wird. Auch eine Auswahl von Zügen braucht einen aktuellen Runner; ein älterer lehnt sie ab, und die Tafel sagt, dass er aktualisiert werden muss.
Unter dem Namen der Engine wird die Suche selbst eingestellt:
| Varianten | Wie viele Kandidatenvarianten behalten werden, 1 bis 5. Leer nimmt Linien pro Suche aus den Einstellungen |
| Beenden bei | Wo Schluss ist: nach einer Zahl Minuten (der Dialog öffnet mit einer Stunde), bei einer Tiefe (45, wenn gewählt) oder nach einer Zahl Knoten. Nichts heißt, die Suche läuft, bis du sie stoppst |
Eine Stunde ist die Voreinstellung, weil eine lange Suche die unergiebigste Art ist, eine Engine zu beschäftigen. Jeder weitere Halbzug kostet etwa das Doppelte des letzten; ein Tag an einer Stellung bringt drei oder vier Halbzüge mehr als eine Stunde, und in den meisten Stellungen haben sich Zahl und bester Zug längst nicht mehr bewegt. Derselbe Tag, verbracht mit den Stellungen am Ende der Variante und mit den anderen Versuchen des Gegners, verändert den Baum weit mehr – dafür gibt es die Aufgaben. Nichts ist für die wenigen Stellungen da, in denen der Verlauf unter der Engine-Tafel die Zahl noch von Tiefe zu Tiefe wandern zeigt: eine Festung, die die Engine langsam durchschaut, ein Opfer, das sich erst dreißig Halbzüge später auszahlt, ein Endspiel nahe an der Tablebase.
Ein erreichtes Limit beendet die Suche sauber: letzter Checkpoint geschrieben, Prozess beendet, Platz zurückgegeben, und eine Meldung sagt, dass die Stellung fertig ist – auch wenn du gerade eine andere Partie ansiehst.
Nur die markierten Züge im selben Dialog gibt der Engine eine Liste der Züge, die schon unter diesem Knoten stehen, und sie sieht sich nichts anderes an: die ganze Rechenzeit geht an die drei Kandidaten, um die es dir wirklich geht. Das schränkt diese eine Suche ein und ändert nichts am Baum; die Züge müssen in der Stellung legal sein. Ihre Zahlen bleiben im Feld und wandern nie in den Baum: der beste Zug einer Auswahl ist nicht die Bewertung der Stellung, und gespeichert wäre er eine Zahl, die keine spätere Suche mehr zurücknehmen könnte. Nimm sie, um schon gewählte Kandidaten zu vergleichen, und eine uneingeschränkte Suche, wenn du das Urteil über die Stellung selbst willst.
Eine Engine auf einem Knoten hat eine Suche: dieselbe Engine dort noch einmal anzusetzen, solange sie eingereiht, laufend oder pausiert ist, wird abgewiesen – und eine beendete Partie nimmt gar keine Suche mehr an, ihr Baum ist eingefroren.
Jede Suche auf diesem Rechner belegt einen seiner Engine-Plätze – die Warteschlangenprozesse unter Rechenleistung → Maschinen auf der Karte dieses Servers, dieselben Plätze, die die Analysedurchläufe und die Analysebretter nutzen –, und jede Suche auf einem Runner belegt einen Slot dieses Runners, geteilt mit seiner Warteschlangenarbeit und nie einem laufenden Durchlauf weggenommen. Sind alle belegt, wird die Suche eingereiht und startet von selbst, sobald einer frei wird. Eine Suche, die drei Tage läuft, hält ihren Platz drei Tage, und solange hat die Warteschlange einen weniger: Die Analyse einer importierten Partie wartet hinter ihr, bis du sie pausierst oder stoppst. Die Kapazitätsleiste dieser Seite und die Karte unter Maschinen zählen die Suchen beide zu dem, was belegt ist, du weißt also immer, worauf die Warteschlange wartet.
Stockfish und Leela gleichzeitig ist der Sinn des Stapels: zwei Engines auf derselben Stellung, zwei Plätze, zwei laufende Felder, zwei Urteile zum Vergleichen. Stockfish liest man an der Tiefe, Leela an der Knotenzahl – das Feld zeigt beides, denn Leela auf Tiefe 22 und Stockfish auf Tiefe 51 sind nicht dasselbe Maß. Zwei Leela-Suchen gleichzeitig sind zwei Prozesse auf einer GPU, jeder dadurch langsamer; niemand hindert dich daran, und Engines sagt, was dabei abzuwägen ist.
Während sie rechnet, zeigt ein Feld Tiefe, Knoten, Geschwindigkeit und wie lange sie schon läuft – gezählt ab dem letzten Start, eine nach einer Pause fortgesetzte Suche zeigt also den laufenden Abschnitt und nicht die Tage, die sie geparkt stand –, dazu ihre Kandidatenvarianten mit Bewertung, zweimal pro Sekunde aufgefrischt; zeigst du auf eine Variante, wird sie aufs Brett gelegt. Rechnet sie nicht, behält das Feld, was die Engine zuletzt gesagt hat: die gespeicherten Varianten, die erreichte Tiefe und eine kleine Kurve, wie sich die Zahl im Lauf der Suche bewegt hat – ein Punkt bei jeder neuen Tiefe, und bei einer Engine wie Leela, deren Tiefe stundenlang stillsteht, während die Knotenzahl klettert, ein Punkt, sobald diese Zahl deutlich gewachsen ist. Daran erkennst du eine Bewertung, die steht, und eine, die noch wandert.
Nichts wartet aufs Ende. Was die Engine findet, wird laufend in den Baum geschrieben, bei jeder neuen Tiefe und mindestens einmal pro Minute; den Browser schließen, den Deckel zuklappen oder den Server neu starten kostet dich also schlimmstenfalls die letzte Minute. Ein Checkpoint bewegt eine Stellung außerdem immer nur vorwärts: ein kurzer Blick überschreibt nie, was eine dreitägige Suche festgestellt hat.
Haben zwei Engines ein Urteil zu einem Knoten, liest der Baum das tiefste – es sei denn, du heftest eines an: Anheften im Feld, und dieselbe Schaltfläche – sie liest sich dann Angeheftet – gibt den Knoten zurück an das tiefste. Die Anheftung gilt je Knoten, du kannst Leela also genau in der Stellung glauben, in der du sie für richtig hältst, ohne sonst etwas zu ändern. Das bernsteinfarbene ≠ an einem Knoten ist der Hinweis, beide Felder zu lesen, bevor du einer der Zahlen traust.
Aufgaben und Erweitern¶
Eine Suche ist eine Engine, die über eine Stellung nachdenkt, solange du sie lässt. Eine Aufgabe ist die andere Hälfte: ein begrenzter Blick – voreingestellt vierzig Millionen Knoten, ein bis zwei Minuten – auf eine Stellung, eingereiht in die gewöhnliche Analysewarteschlange. Sie belegt einen Platz für ein, zwei Minuten und gibt ihn zurück, wo eine Suche ihren behält, und sie läuft dort, wo die Warteschlange Platz hat – auch auf einem entfernten Runner. Welche Engine sie abarbeitet, wählst du beim Einreihen, aus derselben Liste, die auch die Suche zeigt – nur ist hier die Engine eines Runners nicht ausgegraut, denn eine Aufgabe ist gewöhnliche Warteschlangenarbeit, und die für Fernschach gekaufte Maschine ist meist dieser Runner. Vorgeschlagen wird die Engine mit der Rolle Analyse.
Das Menü eines Knotens trägt beides. Aufgabe einreihen … bittet um einen Blick auf diese Stellung und fragt, welche Engine ihn tun soll. Erweitern … ist das, was die Arbeit eines Abends erledigt:
| Engine | Jede Aufgabe der Erweiterung läuft darauf, auch die späteren Stufen, wie viele Stunden sie auch brauchen |
| Breite | Wie viele Züge jede Stufe behält – die ersten Züge der besten Varianten der Stellung, das stärkste zuerst. Leer nimmt Linien pro Aufgabe aus den Einstellungen |
| Stufen | Wie viele Ebenen tief, 1 bis 3. Breite 3 und 2 Stufen sind bis zu zwölf Stellungen, Breite 3 und 3 Stufen bis zu neununddreißig |
| Aufgaben einreihen | An bekommt jeder neue Zug eine Engine. Aus wandern die Züge in den Baum, und gerechnet wird nichts |
Erweiterst du einen Knoten, den die Engines schon beurteilt haben, entstehen die Kinder sofort und unter jedem wartet eine Aufgabe; bei einem, den noch niemand angesehen hat, entsteht eine einzige Aufgabe, die die ganze Erweiterung trägt und sie von selbst entfaltet, sobald sie antwortet. So oder so kannst du den Browser schließen: Die Erweiterung steckt in den eingereihten Zeilen und nicht in der Seite. Erweitern … über dem Baum tut dasselbe für die Stellung, die du gewählt hast, ohne den Umweg über das Menü.
Aufgaben stehen in der Warteschlange vor der automatischen Analyse jeder importierten Partie und hinter einer Analyse, die du über Analysieren in einer Partie angefordert hast und auf die du gerade wartest, und untereinander gilt: die nächste Frist zuerst. Eine Partie, die morgen fällig ist, kommt vor einer, die nächste Woche fällig ist – gleich in welcher Reihenfolge sie eingereiht wurden. Ein Knoten, auf dem eine Aufgabe wartet, trägt eine Warteschlangenmarke; einer, an dem gerechnet wird, einen Spinner. Abbrechen nimmt eine wartende Aufgabe wieder heraus; eine, die eine Engine schon begonnen hat, läuft zu Ende. Warteschlange leeren auf der Seite Analyse leert sie auch von Aufgaben, und jeder Knoten, dessen Aufgabe mit hinausging, sagt, warum sie gestoppt wurde. Verschwindet die Maschine mitten in der Rechnung – der Prozess abgeschossen, ein entfernter Rechner abgesteckt –, geht die Aufgabe von selbst zurück in die Warteschlange und wird noch einmal versucht; klappt auch das nicht, wird der Knoten als fehlgeschlagen markiert, trägt den Grund und ist wieder frei für eine neue Aufgabe.
Deine Markierungen steuern das Ganze – der Grund, sie zu setzen:
| Markierung | Was eine Erweiterung damit macht |
|---|---|
| ✕ Ausgeschlossen | Wird nie erweitert, bekommt nie eine Aufgabe, und alles darunter wird ebenfalls übersprungen |
| ? Schlecht | Höchstens eine Stufe, wie tief die Erweiterung ringsum auch geht |
| ! Gut, !? Interessant | Eine Stufe mehr und ein Geschwisterzug mehr als die Nachbarn |
| Keine Markierung | Die Breite und die Stufen, um die du gebeten hast |
Teilbaum auffrischen … im selben Menü ist das Wartungsverb. Ein Urteil ist veraltet, wenn es flacher ist als Veraltet unter Tiefe – voreingestellt dreißig – oder wenn es von einer Version der Engine stammt, die nicht mehr installiert ist. Das ist das, was man vergisst: Ein im Januar aktualisiertes Stockfish macht jedes Urteil vom Dezember zu dem eines anderen. Veraltete Urteile sind im Baum markiert, und Teilbaum auffrischen … reiht auf jeder veralteten Stellung von diesem Knoten abwärts eine Aufgabe ein, Lücken im Ast eingeschlossen. Sind es mehr als fünfzig, wird es abgelehnt und sagt, wie viele es sind: dann lieber Ast für Ast als den ganzen Baum einer Partie auf einmal.
Pausieren, stoppen und was überlebt¶
Jedes Feld trägt Pause und Stopp, und das ist nicht dasselbe:
| Pause | Der Platz ist sofort zurück, der Prozess bleibt. Er wird mit intaktem Hash geparkt, Fortsetzen – es nimmt den nächsten freien Platz – macht also in Sekunden weiter statt in Stunden. Eine geparkte Engine kostet den Speicher ihres Hash und keine CPU |
| Stopp | Die Suche endet und der Prozess wird beendet. Der Speicher kommt zurück, die Zeile ist abgeschlossen: Eine gestoppte Suche wird nicht fortgesetzt, du startest eine neue, und die beginnt kalt |
Die Pause wirkt sofort; geparkt, warm sagt das Feld einen Moment später, wenn die Engine wirklich beiseitegelegt ist. Die Kapazitätsleiste zählt, was geparkt ist und wie viel es hält – daran entscheidest du, wann geparkt zu viel ist.
Ein Neustart – des Servers, des Containers, der Maschine – ist der dritte Fall. Suchen, die liefen, starten von selbst wieder, sobald der Server oben ist, sofern ihre Engine noch eingerichtet ist; der Rest kommt pausiert zurück, mit dem Grund in der Zeile. Kein Prozess überlebt einen Neustart, jede Suche ist danach also kalt – ein Feld, das pausiert, kalt statt geparkt, warm meldet, ist eines, dessen Prozess es nicht mehr gibt: Die Engine beginnt bei der Tiefe ihres letzten Checkpoints und braucht bis zur alten Tiefe ungefähr so lange wie beim ersten Mal, weil die letzten Iterationen die Zeit fressen.
Was alle drei Fälle immer überlebt, ist der Baum – Bewertung, Tiefe, Knotenzahl, Varianten und Verlauf an jedem Knoten, so weit sie gekommen waren. Eine Pause behält die Hashtabelle der Engine, ein Stopp und ein Neustart verlieren sie. Das ist Zeit, kein Wissen.
Eine Suche, die scheitert – eine verschwundene Programmdatei, eine mitten im Rechnen gestorbene Engine –, wird als gescheitert markiert und behält ihren Fehler im Feld. Der Baum behält jeden Checkpoint, den sie bis dahin gesetzt hat.
Läuft gerade¶
Zurück auf der Liste, zwischen Warten auf den Gegner und Beendet, steht jede Engine auf jeder Partie, eine Karte je Suche: die Engine und der Rechner, auf dem sie läuft, die Partie, für die sie arbeitet, die Bewertung, bei der sie steht, Tiefe und Knotenzahl und wie lange sie schon läuft. Eine geparkte Suche steht ebenfalls in der Liste, blass und mit dem Vermerk warm, und eine, die auf einen Platz wartet, auch. Jede Karte ist ein Link in die Partie, zu der sie gehört.
Auch Aufgaben stehen in der Liste, mit dem Vermerk Aufgabe: eine Karte je Aufgabe, die
wartet oder an der gerechnet wird, mit der Engine, dem Rechner, auf dem diese Engine lebt,
und dem Knotenbudget, mit dem sie eingereiht wurde. Eine Aufgabe meldet nichts, solange sie
wartet, trägt also keine Tiefe – was sie über ihre Größe sagen kann, ist das, was sie
ausgeben wird.
Die Kapazitätsleiste unter der Seitenüberschrift zählt dieselbe Arbeit über die ganze Installation: wie viele der Engine-Plätze dieses Rechners Suchen gerade halten, Suchen, die auf einen warten, warm geparkte Engines und der Speicher, den sie halten, wie viele Aufgaben unterwegs sind und an wie vielen davon schon gerechnet wird, und eine Zeile je entferntem Rechner. Aufgaben werden neben den Suchen gezählt und nicht mit ihnen: Sie halten einen Platz nur ein, zwei Minuten, und vielleicht auf einer anderen Maschine. Dieselben Zahlen stehen am Fuß der Seitenleiste, damit sie von jedem Bildschirm aus beantwortet sind. Leiste und Liste folgen den Suchen, wie sie melden – hier gibt es nichts nachzuladen.
Alles pausieren¶
Alles pausieren in der Titelleiste ist für den Moment, in dem der Laptop zugeht oder die Maschine für etwas anderes gebraucht wird. Es pausiert jede Suche in jeder Partie, warm, genau wie das Pausieren einer einzelnen, und wird zu Alle fortsetzen, das sie alle wieder in Gang setzt: Jede nimmt einen Platz, sobald einer frei wird. Eine pausierte Suche, deren Engine inzwischen ausgeschaltet oder entfernt wurde, bleibt pausiert und sagt es.
Beides zerstört nichts. Der Baum behält, was jede Suche als Checkpoint gesetzt hat, und Suchen, die fortgesetzt werden, während ihre Prozesse noch geparkt sind, kommen bei der Tiefe zurück, bei der sie aufgehört haben.
Notizen und das Buch¶
Unter dem Brett drei Reiter zum ausgewählten Knoten:
- Diese Stellung – Notizen, an die Stellung des ausgewählten Knotens geheftet. Sie tauchen damit in jeder deiner Partien wieder auf, die diese Stellung erreicht, und im Explorer. Der Kommentar zum Zug – die Bemerkung, die ins exportierte PGN wandert – wird darüber bearbeitet.
- Diese Partie – das Journal: was der Gegner gern tut, der Plan, die Rechnerei mit den Fristen. An die Partie geheftet und an keinen Zug.
- Buch – was über diese Stellung schon bekannt ist, aus zwei Büchern: Meister, dieselbe Datenbank wie die Referenzquelle im Explorer, die eine Verbindung zu Lichess braucht und Mit Lichess verbinden anbietet, solange keine besteht, und Deine Partien, dein eigener Baum aus dieser Stellung. Zeigst du auf eine Zeile, wird sie aufs Brett gelegt; klickst du sie an, wandert der Zug in den Baum – in den vorhandenen Zweig hinein, wenn es ihn gibt, sonst wird er angelegt. So wird hier die Eröffnungsphase gespielt: Theorie lesen und das Gelesene behalten, in einem Klick.
Die ersten beiden sind die Notizen aus Notizen, geschrieben mit demselben Editor. Ein Zug, zu dessen Stellung Notizen vorliegen, trägt im Baum eine Notizmarke, damit das vor Wochen Geschriebene wiedergefunden wird, wenn die Partie in die Stellung zurückkehrt. Notizen lassen sich auch zu einer beendeten Partie noch schreiben; der Zugkommentar nicht – er gehört zum eingefrorenen Baum, und eine beendete Partie zeigt ihn nur noch als Text.
Eine Partie abschließen¶
Beenden… fragt nach dem Ergebnis – 1-0, 0-1 oder ½-½ – und, wenn du magst, wie die
Partie ausging (Aufgabe, Schiedsspruch, Zeit). Danach:
- Der Analysedurchlauf wird über die Partie eingereiht, wie bei jeder ankommenden Partie. Hat die Rolle Analyse keine Engine, wird nichts eingereiht und die Meldung sagt es; die Partie ist trotzdem beendet, und eine Analyse kannst du später nachholen.
- Die Frist wird gelöscht und die Partie verlässt Du bist am Zug.
- Der Baum friert ein. Er bleibt bei der Partie und lesbar, aber nichts darin lässt sich noch ändern, und er nimmt weder eine neue Suche noch eine neue Aufgabe mehr an.
- Eine Suche, die noch auf der Partie läuft, wird dir nicht abgenommen – es ist deine Rechenzeit. Stopp in ihrem Feld beendet sie, wenn die Partie vorbei ist.
Ab da ist es eine Partie wie jede andere: im Bewertungsverlauf, unter Partien bei ihrer Quelle und der Bedenkzeit Fernschach, und in den Statistiken. Ihre Partieseite behält hinter dem ⋯ unter dem Brett den Eintrag Fernschachbaum, der den eingefrorenen Baum neben der beendeten Partie öffnet – siehe Eine Partie analysieren.