使用c ++中的类创建,改组和处​​理一副牌

时间:2014-12-10 01:02:57

标签: c++

好的,所以我正在为一个计算机科学课程的最后一个项目工作,而我在掌握如何推进任务方面遇到了麻烦。

提供的标准是: 创建一个由52张扑克牌组成的标准牌组,并在屏幕上列出这些牌。显示未洗牌的牌组后暂停。

"随机"甲板并在屏幕上列出洗牌的甲板。 random_shuffle from将用于卡片矢量

排序(按排名)并评估牌组的前5张牌作为'手牌。打印未排序的,然后打开排序的手。

然后我们必须检查对,三种,满屋,直道,冲水等等(我非常有信心,我可以处理)

教授给了我们这段代码作为卡片类的理念:

#ifndef CARD_H

#define CARD_H


class Card
{
public:
    Card();

    // set and get the rank, 2=2, 3=3, ... 10=10, 11=J, 12=Q, 13=K, 14=A
    void setRank(int r);
    int getRank();

    // set and get the suit, 1=Spades, 2=Hearts, ...
    void setSuit(int r);
    int getSuit();

    // for debugging, print the suit and rand as integers
    void print();

    // return the rank and suit as a 'nice' looking string
    void toString();

protected:
private:
    int myRank;
    int mySuit;
};
#endif // CARD_H

阅读时,似乎我可能也需要制作套牌和手工课程,但由于他们的目标和限制似乎总是不同,我只是不确定如何真正继续这一点。我非常有信心,一旦我弄清楚我需要哪些课程,以及如何使它们一起发挥得很好并且能够正常启动,我能够将它们拼凑在一起并轻松地完成剩下的工作。

有人能指出我正确的方向吗?

1 个答案:

答案 0 :(得分:0)

首先,你不需要甲板或手的课程。可能有些情况下你可能需要将它们作为一个单独的类,但在这种特殊情况下,只需要一个卡片矢量(它实际上会给你一个关于你需要使用random_shuffle矢量这一事实的提示该手由该向量的5个连续元素表示。

虽然与您的问题没有直接关系,但我想提及一篇名为The Danger of Naïveté的文章,其中分析了洗牌问题。它可能会帮助您创建一个真正的混乱,并且分布均匀。