freecel 空档接龙 算法

本文介绍了作者在研究扫雷和空当接龙Freecell过程中,因缺乏源代码而自行编写的一个算法实现。最初尝试使用A*算法,但未成功,随后采用深度优先搜索策略,部分情况能快速得出解决方案。代码已开源并上传至Google代码库,供他人下载学习。在实现中,定义了Card类表示牌,并以两种方式存储,还构建了State类表示游戏状态,通过递归遍历所有可能的子步骤来寻找解。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近很疼

研究扫雷和空当接龙 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
        eTy
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值