freecell

10 篇文章 0 订阅

  

printf("/t/t/t/t选局/n/t/t/t  从 1 到 1000000: ");
cin>>g_gamenumber;
Shuffle(g_gamenumber);
string sR = ToString();
printf("%s/n", sR.c_str());
{
    char fileOut[128];
    sprintf(fileOut, "%d.txt", g_gamenumber);
    ofstream fOut(fileOut);
    fOut << convertToFile();
} 
 
#define     BLACK           0               // COLOUR(card)
#define     RED             1
#define     ACE             0               // VALUE(card)
#define     DEUCE           1
#define     CLUB            0               // SUIT(card)
#define     DIAMOND         1
#define     HEART           2
#define     SPADE           3
#define     SUIT(card)      ((card) % 4)
#define     VALUE(card)     ((card) / 4)
#define     COLOUR(card)    (SUIT(card) == DIAMOND || SUIT(card) == HEART)
#define     EMPTY          -1
#define     MAXPOS         21
#define     MAXCOL          9       // includes top row as column 0
typedef     int             CARD;
CARD        card[MAXCOL][MAXPOS];   // current layout of cards, CARDs are ints
int         g_gamenumber;
void Shuffle(int gamenumber)
{
    int  i, j;                // generic counters
    int  col, pos;
    int  wLeft = 52;          // cards left to be chosen in shuffle
    CARD deck[52];            // deck of 52 unique cards
    g_gamenumber = gamenumber;
    
    for (col = 0; col < MAXCOL; col++)          // clear the deck
        for (pos = 0; pos < MAXPOS; pos++)
            card[col][pos] = EMPTY;
        
    /* shuffle cards */
    
    for (i = 0; i < 52; i++)      // put unique card in each deck loc.
        deck[i] = i;
    
    srand(gamenumber);            // gamenumber is seed for rand()
    for (i = 0; i < 52; i++)
    {
        j = rand() % wLeft;
        card[(i%8)+1][i/8] = deck[j];
        deck[j] = deck[--wLeft];
    }
}
string convertToFile()
{
    string sR;
    sR.reserve(100);
    char value[] = "A23456789TJQK";
    char sTmp[20];
    
    // 梅花 theCard % 4 = 0
    // 方块 theCard % 4 = 1
    // 红心 theCard % 4 = 2
    // 黑桃 theCard % 4 = 3
    char suit[] = "CDHS"; // 梅花,方块、红心、黑桃
    // display the card
    for (int row = 0; row < MAXPOS; row++)
    {
        for (int col = 1; col < MAXCOL; col++)
        {
            int theCard = card[col][row];
            if (theCard == EMPTY)
                break;
            else
            {
                sprintf(sTmp, "%c%c ", suit[theCard % 4], value[theCard / 4]);
                sR.append(sTmp);
            }
        }
        sR.append(1, '/n');
    }
    
    return sR;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
WTL_Freecell v1.1 (WTL空当接龙v1.1) 20180111 本程序全部使用WTL编程,VS2017编译,程序短小精悍,不依赖VC运行库。本程序实现了真正的任意窗口大小,真正实现 全屏 满屏 最大化 大窗口 大图标 大字体。当屏幕分辨率较小时(宽小于1213或高小于850),程序会自动最大化显示、以自动适应屏幕大小。为方便使用,增加了窗口还原功能,将常用功能增加为顶级弹出菜单。本程序借鉴了网友的一些实现模块,对向海飞等网友表示感谢。WTL是Windows Template Library,可参见 http://wtl.sourceforge.net/。本程序的主要特点包括: 1、程序全部使用WTL编程,程序短小精悍,不依赖VC运行库,支持XP/7/8/8.1/10及相应Server版Windows系统; 2、程序窗口可以任意缩放移动,真正的任意窗口大小,真正实现 全屏 满屏 最大化 大窗口 大图标 大字体; 3、自动适应分辨率较小的情况,当屏幕分辨率较小时(宽小于1213或高小于850),程序会自动最大化显示、以自动适应屏幕大小; 4、为方便使用,增加了窗口还原功能,将常用功能增加为顶级弹出菜单; 5、可以存档、读档为文本文件; 6、可以自编牌局,牌局数几乎没有限制。 7、允许无限次撤销; 8、绝大部分牌局可以自动解答; 9、可以回放解答过程; 10、可以让电脑自动解答并演示给你看。 -------------------------------------------- WTL_Freecell v1.1 (WTL空当接龙v1.1) 20180111 -------------------------------------------- By :MinJun QQ :153248043 E-mail :ybmj@vip.163.com Blog :http://blog.csdn.net/shuren8/ --------------------------------------------
真正实现 全屏 满屏 最大化 的 空当接龙 Freecell 3.50 20150909 3.50版是在向海飞的空档接龙3.30版基础上修改而来,适合需要全屏 满屏 最大化 大窗口大图标大字体的网友使用。 3.30版问题:全屏时手动或自动解答完成后,单击“回放”按钮后的“回放对话框”看不到,不便于操作,只能按ESC键退出。3.50版进行了改进,全屏时手动或自动解答完成后,单击“回放”按钮后的“回放对话框”定位在主窗口中间,可以看见、也便于操作。 与空档接龙3.00的修改版相比,主要实现了真正的任意窗口大小,真正实现 全屏 满屏 最大化。 并且,当屏幕分辨率较小时(宽小于1213或高小于850),程序会自动最大化显示、以自动适应屏幕大小 "--------------------------------------------", "空档接龙3.50版", "--------------------------------------------", "作者 :向海飞", "E-mail :xianghaifei@sohu.com", "blog :http://blog.csdn.net/xianghaifei/", "Improveed :ybmj@vip.163.com", "--------------------------------------------", Freecell 3.50 下载地址: 可以到 http://download.csdn.net/user/shuren8 搜索 Freecell 下载最新版本。 空档接龙-2006-05-30原版下载地址: http://download.csdn.net/detail/xianghaifei/158407 厌倦了windows空档接龙的某些限制么?不妨玩一下这个吧。 可以认为它是windows空档接龙的升级版本。最主要的特色是: 1. 允许无限次数的撤销。 2. 可以存档、读档。 3. 可以回放解答过程。 4. 可以玩的牌局数目达到20亿个以上。 5. 可以让电脑自动解答并演示给你看。 6. 可以自编牌局。 目前现有的牌局中95%以上都可以自动解答。 由于可以自编牌局,所以牌局的个数实际上几乎没有限制。 例如在"自编的牌局"文件夹下面的存档文件就是我定义的牌局。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值