Ich konnte keinen Pythonbaum finden, den ich verwenden könnte, um eine Baumstruktur für Schachöffnungen zu schaffen, also versuchte ich, mein eigenes zu schreiben. Um tiefer in den Baum vorzudringen, versuche ich einen Substamm zurückzugeben, wenn ich eine neue Position hinzufüge, aber es scheint, dass alle Positionen zur Wurzel hinzugefügt werden, und mir wird kein Verweis auf die Subroot gegeben, wie ich es erwarte, obwohl ich hat überprüft und root hat auch viele Enkelkinder.Nicht erwünschter Wert für Pythonbaum
import chess.pgn
class Node(object):
children = []
score = None
def __init__(self, fen):
self.fen = fen
def add(self, fen):
for c in self.children:
if c.fen == (fen):
print("working")
return c
self.children.append(Node(fen))
return self.children[-1]
root = Node('rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1')
def createTree(fileName):
pgn = open(fileName)
game = chess.pgn.read_game(pgn)
while(game):
next_move = game.variations[0]
fen = next_move.board().fen()
global root
currentRoot = root.add(fen)
while(not next_move.is_end() and next_move.board().fullmove_number <= 5):
next_move = next_move.variations[0]
fen = next_move.board().fen()
currentRoot = currentRoot.add(fen)
print(currentRoot.children)
game = chess.pgn.read_game(pgn)
file = r"C:\all.pgn"
createTree(file)
for n in root.children:
print(n.fen)
Bitte geben Sie einen Download-Link zu der von Ihnen verwendeten 'chess.pgn'-Bibliothek an. –
https://pypi.python.org/pypi/python-chess – Josh