2011-05-06 174 views
1

我正在寫minimax作爲項目的一部分,但它非常難以檢查它是否正常工作。如果我能打印出它所做的一棵樹,它將非常有用。打印遞歸樹

有沒有簡單的方法來打印一個遞歸調用樹,選擇任何變量對情況很重要?

+0

如何使用Visitor遍歷樹並打印每個訪問的treenode?或者在每個節點上使用適當的toString()方法? – Dirk 2011-05-06 17:35:29

+0

@Dirk:在minimax算法中,你實際上並沒有在內存中構建一棵樹。樹結構隱含在遞歸中。 – 2011-05-06 17:38:38

回答

1

通過參數跟蹤遞歸深度(以minimax爲準,無論如何你都會這樣做)。然後打印深度*少量的空間,然後在每次調用有趣的變量,以獲得

player=1, move=... 
    player=2, move=... 
    player=1, move=... 
    ... 
    player=2, move=... 

您可能還需要打印每個遞歸調用的返回值。

如果你非常想要一張樹的美麗圖片,後處理上述的輸出並將其提供給樹形圖包。

+0

什麼是一個很好的繪圖軟件包(開源)? – 2011-05-06 18:43:41