一区二区三区电影_国产伦精品一区二区三区视频免费_亚洲欧美国产精品va在线观看_国产精品一二三四

聯系我們 - 廣告服務 - 聯系電話:
您的當前位置: > 關注 > > 正文

天天消息!掃雷和空當接龍freecell:算法深度優先

來源:CSDN 時間:2023-02-10 13:46:18

研究掃雷和空當接龍 freecell


(資料圖片)

搜到幾個代碼, 總是沒有源代碼, 不爽

就寫了個

本來用a* 算法, 好像出不來

然后使用深度優先, 有些可以快速得到結果.

最大移動張數計算方式:(可用單元+1)×(閑置列+1)

代碼放到

https://bird-self-lib.googlecode.com/svn/branches/FreeCellCalculate

下載應該不需要權限

一張牌

Card

內部2種表達方式

1. 從0-52的序列, 把4套牌都排序了. 梅花的0-12, 方塊的...這個占字節少,快速.

2. 用type和number,  花色是type, 1-10,jqk 這些是number, 這個方便調試.

class CCard    {        #if CARD_1_BYTE        UINT8       m_num;#else        eType       m_type;        eNumber     m_number;  //0-9(1-10), 11- J, 11- Q, 12- K#endif    };

一個狀態 叫一個State, 如圖

左上角是bench, 右上角是拍好序的sorted

下面就是牌. 每豎是一個list

每豎行是一個column,

class CState{public:        UINT                    m_id;    UINT                    m_idxFather;    bool                    m_hasGenSon;    ListInt                 m_idxSon;    UINT16                  m_value;    UINT8                   m_step;    UINT                    m_hash;    //std::string             m_str;    VecCard                 m_vecIdxSorted;   //4 vec, save show card    VecCard                 m_vecBench;       //4 card     typedef std::vectorVecListCard;    VecListCardm_vecVecIdx;};

算法,深度優先

從開局的state開始

生成他的所有子步驟, 每個都是一個son state

每個都算出一個value

然后把最低value的當作當前節點,

再次遍歷

找到完成的狀態.

如果找不到就依次退回到父節點.

責任編輯:

標簽:

相關推薦:

精彩放送:

新聞聚焦
Top 主站蜘蛛池模板: 益阳市| 昌图县| 南丰县| 论坛| 普兰店市| 衡山县| 广宁县| 偏关县| 辽阳县| 镶黄旗| 黄浦区| 澜沧| 广灵县| 孝昌县| 水城县| 瑞安市| 华安县| 静宁县| 广州市| 西充县| 柳林县| 姚安县| 登封市| 天门市| 全州县| 米林县| 天气| 秦皇岛市| 东明县| 手机| 丰原市| 个旧市| 疏勒县| 梁山县| 康乐县| 安阳县| 江北区| 高青县| 黑水县| 黄浦区| 新巴尔虎左旗|