簡體   English   中英

井字游戲圖設計?

[英]Tic-tac-toe game graph design?

這是我作業中的一個普遍問題,我只是在問一些想法或偽代碼。

假設我正在使用C ++構建井字游戲。 我已經擁有一個Node類,其中包含一個const成員數據,代表當前游戲板狀態,以及一個指向其他Node的const指針數組,其中包含每個可能的下一步狀態。 因此,這將是一個沒有重復節點的有向圖(每個節點都有其獨特的游戲狀態)。

嘗試生成這樣的圖形時遇到麻煩。 似乎我需要使用遞歸,因為Node類中的所有數據成員都是const,因此無法更改它們。 而且,如果沒有Node的重復,我很難想出立即生成這樣一個圖的好主意(我的意思是將它做成樹很容易,但是會浪費很多空間和時間。) 可能有幫助的一件事是,我能夠比較兩個不同的游戲狀態,並且我認為除<set>之外,我不允許使用其他模板。

因此,如果有人對此有任何想法,請隨意寫下您的想法或偽代碼。 謝謝

我認為您需要檢查是否存在:

std::set< Node > checked_node;

bool isNodeChecked( Node ){
    return checked_node.find( Node )!=checked_node.end();
}

您需要重載類似operator =operator <類的東西,以使std::set在您的class Node上工作;

另外std::unordered_map可能也可以。

(雖然在我看來,井字游戲狀態可以由0到3 ^ 9的非負整數表示。這樣,std :: set就足夠了,但是您需要額外的編碼解碼功能。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM