Lassen Sie gnubg den besten Zug berechnen!
Dies ist die Position des regulären Treffens von Akasaka eines Tages. Ich war 4-0 / 5p Crawford in Rot. Wie bewegt man die blaue 54?
board
Geben Sie zunächst die Platzierung des Prüfers in der Tupelliste an. Es scheint, dass Sie die Anzahl der Steine an jedem Punkt der Reihe nach eingeben sollten. Der 25. Punkt scheint die Anzahl der Prüfer an der Bar zu sein.
In [1]: board = ((0, 0, 0, 2, 2, 3, 2, 0, 0, 3, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0),
...: (0, 0, 0, 0, 0, 5, 2, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 1, 1, 0))
cubeinfo
Geben Sie die Länge des Spiels, die Punktzahl und an, ob es sich um Crawford handelt oder nicht. Ich kenne "gammonprice" nicht, also setze ich es vorerst auf 0.
In [2]: cubeinfo = {'beavers': 0,
...: 'bgv': 0,
...: 'crawford': 1,
...: 'cube': 1,
...: 'cubeowner': -1,
...: 'gammonprice': ((0.0, 0.0), (0.0, 0.0)),
...: 'jacoby': 0,
...: 'matchto': 5,
...: 'move': 0,
...: 'score': (0, 4)}
Es gibt eine Methode namens "calcgammonprice", mit der Sie den Schinkenpreis berechnen können.
In [3]: cubeinfo = gnubg.calcgammonprice(cubeinfo)
In [4]: cubeinfo
Out[4]:
{'beavers': 0,
'bgv': 0,
'crawford': 1,
'cube': 1,
'cubeowner': -1,
'gammonprice': ((0.06355762481689453, 1.1390838623046875), (0.0, 0.0)),
'jacoby': 0,
'matchto': 5,
'move': 0,
'score': (0, 4)}
posinfo
Geben Sie die Rolle und die Runde an.
In [5]: posinfo = {'dice': (5, 4), 'doubled': 0, 'gamestate': 1, 'resigned': 0, 'turn': 0}
gnubgid
Ich werde es später verwenden, also werde ich etwas namens "gnubgid" machen.
In [6]: gnubgid = gnubg.gnubgid(board, cubeinfo, posinfo)
In [7]: gnubgid
Out[7]: u'2G4cAwTg2wkAKw:sIGyAAAAIAAE'
Wenn Sie "gnubgid" mit dem Befehl "set gnubgid" angeben, befinden Sie sich in der Phase, die Sie bisher festgelegt haben.
In [8]: gnubg.command('set gnubgid 2G4cAwTg2wkAKw:sIGyAAAAIAAE')
The dice have been set to 5 and 4.
GNU Backgammon Position ID: 4HPwATDgc/ABMA
Match ID : sIGyAAAAIAAE
+12-11-10--9--8--7-------6--5--4--3--2--1-+ O: gnubg
| X O | | O X |0 Punkte
| X O | | O X |Wirf den Würfel 54
| X O | | O |
| X | | O |
| X | | O |
^| |BAR| |5-Punkte-Match(Würfel: 1)
| O | | X |
| O | | X |
| O X | | X |
| O X | | X O |
| O X | | X O |4 Punkte
+13-14-15-16-17-18------19-20-21-22-23-24-+ X: mkisono
GNU Backgammon Position ID: 2G4cAwTg2wkAKw
Match ID : sIGyAAAAIAAE
+12-11-10--9--8--7-------6--5--4--3--2--1-+ O: gnubg
| X O O O | | O X |0 Punkte
| X O O | | O |Wirf den Würfel 54
| O | | O |
| | | O |
| | | O |
^| |BAR| |5-Punkte-Match(Würfel: 1)
| | | |
| | | |
| X | | X |
| X X | | X X X O |
| X X | | X X X O O O |4 Punkte
+13-14-15-16-17-18------19-20-21-22-23-24-+ X: mkisono
Setting GNUbg ID 2G4cAwTg2wkAKw:sIGyAAAAIAAE
findbestmove
Lassen Sie uns endlich den besten Zug herausfinden!
In [9]: gnubg.findbestmove()
Out[9]: (10, 5, 8, 4)
10/5, 8/4 * Das stimmt. Ich kann keinen anderen guten Schachzug wie diesen finden. Blots sind auf der Innenseite verstreut, aber wenn Sie hier rot treffen und den zweiten Anker nehmen, sieht es aus wie ein Rückspiel.
Sie können den Befehl "Hinweis" verwenden, um weitere Informationen zu erhalten.
In [10]: gnubg.hint()
Out[10]:
{'gnubgid': u'2G4cAwTg2wkAKw:sIGyAAAAIAAE',
'hint': [{'context': {'cubeful': 1,
'deterministic': 1,
'noise': 0.0,
'plies': 2,
'prune': 1},
'details': {'probs': (0.28211891651153564,
0.03484905883669853,
0.001164137851446867,
0.38557541370391846,
0.0413915291428566),
'score': -0.4322209358215332},
'eqdiff': 0.0,
'equity': -0.4322209358215332,
'move': '10/5 8/4*',
'movenum': 1,
'type': 'eval'},
{'context': {'cubeful': 1,
'deterministic': 1,
'noise': 0.0,
'plies': 2,
'prune': 1},
'details': {'probs': (0.2639846205711365,
0.03448880836367607,
0.0010329540818929672,
0.41944432258605957,
0.05380573496222496),
'score': -0.46866169571876526},
'eqdiff': -0.036440759897232056,
'equity': -0.46866169571876526,
'move': '8/4* 8/3',
'movenum': 2,
'type': 'eval'},
Artikel bisher