freecel 空档接龙 算法
最近很疼
研究扫雷和空当接龙 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_BYTEUINT8 m_num;
#elseeType 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 cardVecCard m_vecBench; //4 card typedef std::vector<ListCard> VecListCard;VecListCard m_vecVecIdx;
};
算法,深度优先
从开局的state开始
生成他的所有子步骤, 每个都是一个son state
每个都算出一个value
然后把最低value的当作当前节点,
再次遍历
找到完成的状态.
如果找不到就依次退回到父节点.
freecel 空档接龙 算法相关推荐
- 最全微信红包分配算法,不只是二倍均值那么简单
最全微信红包分配算法!不只是二倍均值那么简单! 一.序言 本文要解决什么问题? 抢红包的顺序对红包收益有无影响? 抢红包的顺序对当运气王的概率有无影响? 红包接龙游戏每次都是先抢好还是后抢好? 红包接 ...
- 工作▍推荐系统算法工程师是搞啥的?工作内容、技能、面试题全解析
推荐算法工程师就业指导 2016年,YouTube发表论文,将深度神经网络应用推荐系统中,实现了从大规模可选的推荐内容中找到最有可能的推荐结果. 近年来,推荐系统被广泛的应用于电子商务推荐.个性化广告 ...
- 解决全局优化和离散问题的二进制多宇宙算法
Binary multi‑verse optimization algorithm for global optimization and discrete problems 1.摘要 多宇宙算法已经 ...
- 学计算机的,可以不悲哀
学计算机的,可以不悲哀 李绪成 http://blog.csdn.net/javaeeteacher 上周写了一篇文章<学计算机的,有点悲哀>,原因是看到了两则消息:高考报考人数以及计算机 ...
- 鼠标一点打开几个网页
最近比较忙,所以好几天没来了,今天难得有空闲,所以将最近遇到问题,一股脑放上来.然后我又会没大有空了,希望说我的ISA问题可以解决的朋友会将方法留给我,有时朋友指点一下下,就会有睡梦初醒的感觉, 前天 ...
- 关于在自己的程序中使用其它窗口的菜单
// //关于在自己的程序中使用其它窗口的菜单 //在自己的应用程序中控制其它程序的菜单,首先要获取其它程序主窗口的句柄( 为HWND类型),其次向需要控制的菜单发出 //WM_COMMAND消息( ...
- 注册表功能大全(转)
键值名称:NoDeletingComponents 数据类型:DWORD 键 值:1 作 用:禁止添加桌面项 路 径:HKEY_USERS\.DEFAULT\Software\Microsoft\Wi ...
- [实用资料系列]注册表技术大全「二辛苦收集的注册表大全」
看完了想自己动手不要忘了先备份哦... 有什么后果不要找我...90%以上我多试过.我的操作系统是XP 我想对大家绝对用帮助的. 注册表基础: ********系统文件夹:********* 名称 路 ...
- 程序员,你得选准买房的时间!
前几天我在脉脉上看到一个热帖. 夫妻双方都是互联网员工,买了房每个月还贷1w多,感觉压力很大,十分害怕失业. 而热帖下的评论也是五花八门. 有些人觉得一万多的房贷不算啥,他们每个月还2w.3w多,照样 ...
最新文章
- yolov3网络结构笔记
- java 对象传递给方法_java – 将对象值传递给方法
- 字符串扩展_JAVA
- 超级管理器Android,超级文件管理器app
- AutoMapper使用
- 关于@Alias注解的几个问题
- java发邮件的框架_Java的Spring框架中实现发送邮件功能的核心代码示例
- substring的用法
- JAVA常见算法题(二十五)
- topcoder srm 686 div1 -3
- 2021-CVPR-Inpainting论文导读
- lighttpd跟php,Lighttpd与PHP
- 零基础学DevOps必看教程,带你10分钟快速实战入门DevOps
- 基于LSTM-Attention模型的光伏电站发电量预估(1)
- R语言手动计算主成分分析(PCA)及其在R函数的实现
- 此身, 此时, 此地
- 带特殊符号|的字符串的截取
- 张浩java成绩大于98分_1028学习
- JS 中禁用输入法
- java-php-python-ssm万达影院售票管理系统计算机毕业设计