Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/147.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ C++;-黑桃类:如何使用它们_C++_Class_Struct - Fatal编程技术网

C++ C++;-黑桃类:如何使用它们

C++ C++;-黑桃类:如何使用它们,c++,class,struct,C++,Class,Struct,我正在努力学习如何利用课堂进行学校的黑桃游戏项目。在运行这段代码时,我似乎遇到了各种各样的错误(如下)。我正在尝试创建一张牌,创建一副牌,洗牌,然后将牌发给玩家和计算机。我不太确定我是否正确使用了类,也不确定如何在main()部分实现它们。任何例子都会非常有帮助和感激 #include <iostream> #include <string> #include <vector> #include <stdlib.h> #include <ct

我正在努力学习如何利用课堂进行学校的黑桃游戏项目。在运行这段代码时,我似乎遇到了各种各样的错误(如下)。我正在尝试创建一张牌,创建一副牌,洗牌,然后将牌发给玩家和计算机。我不太确定我是否正确使用了类,也不确定如何在main()部分实现它们。任何例子都会非常有帮助和感激

#include <iostream>
#include <string>
#include <vector>
#include <stdlib.h>
#include <ctime>
#include <cstdlib>
#include <algorithm>
#include <Windows.h>

// Game Specific Files
#include "CardGameConfig.h"
#include "CardGameFunctions.h"
#include "CardGameStructs.h"

using namespace std;



// Card Class
class Card
{
private:
    int _suit;
    int _rank;
public:
   Card();
   Card(int &iSuit, int &iRank); 
   ~Card(); // Deconstructor
   int GetSuit(); //Method
   int GetRank(); //Method
};


// sets a blank card
Card::Card(){      
    _suit = 0;
    _rank = 0;
}


// creates a card with a given suit
Card::Card(int &iSuit, int &iRank){
    _suit = iSuit;
    _rank = iRank;

} // end of Card function (class member)

int Card::GetSuit(){
        return _suit;
}

int Card::GetRank(){
    return _rank;
}

Card::~Card(){
}


// Deck Class
class Deck
{
private:
    Card cards[TOTAL_CARDS_IN_DECK];
    Card *_pCardList[52];
public:
    Deck();
   ~Deck();
   void Shuffle();
   Card DrawCard();
   Card *_pCardList; // holds an array of cards (52 of them)
   int _index;
};

Deck::Deck(){


    // Start deck index at zero
    _index = 0;
    _pCardList = new Card[TOTAL_CARDS_IN_DECK];

    // TOTAL_CARDS_IN_SUIT = 13
    for(int iRank = 0; iRank < TOTAL_CARDS_IN_SUIT; iRank++)
    {
        int iRankOffset = 2;
        iRank = iRank + iRankOffset;

        //TOTAL_SUITS = 4
        for(int iSuit = 0; iSuit < TOTAL_SUITS; iSuit++){
            iSuit = ESuits(iSuit);
            _pCardList[_index] = Card(iRank, iSuit);        
            _index++;
        } // end of iSuit for loop
    } // end of iRank for loop */
}


void Deck::Shuffle(){
    srand((int) time( NULL ) );

    for(int iCardNum = 0; iCardNum < TOTAL_CARDS_IN_DECK; iCardNum++)
    {
        int iRandomNumber = ( rand() % TOTAL_CARDS_IN_DECK-1);
        Card card = _pCardList[iCardNum];
        _pCardList[iCardNum] = _pCardList[iRandomNumber];
        _pCardList[iRandomNumber] = card;
    }
}

Card Deck::DrawCard(){

    _index++;
    return _pCardList[_index-1];

}

Deck::~Deck()
{
    delete [] cards;
}

int main(int argc, char* argv[]){

    Card CardGame;
    Deck Deck;



//  cout << Deck._pCardList[1].GetRank() << " " << Deck._pCardList[1].GetSuit() <<     endl;

    return 0;
    std::cin.get();
    std::cin.get();
}
#包括
#包括
#包括
#包括
#包括
#包括
#包括
#包括
//游戏特定文件
#包括“CardGameConfig.h”
#包括“CardGameFunctions.h”
#包括“CardGameStructs.h”
使用名称空间std;
//卡片类
班级卡
{
私人:
国际套装;
国际排名;
公众:
卡片();
卡(int&iSuit、int&iRank);
~Card();//解构器
int GetSuit();//方法
int GetRank();//方法
};
//设置空白卡片
卡片::卡片(){
_西服=0;
_秩=0;
}
//创建一张带有给定套装的卡片
卡片::卡片(int&iSuit、int&iRank){
_suit=iSuit;
_等级=伊朗;
}//卡片结束函数(类成员)
int Card::GetSuit(){
退货诉讼;
}
int Card::GetRank(){
返回_秩;
}
卡片::~Card(){
}
//甲板级
甲板
{
私人:
卡片[卡片组中的卡片总数];
卡片*_pCardList[52];
公众:
甲板();
~Deck();
无效洗牌();
卡片抽卡();
卡片*\u pCardList;//保存一组卡片(其中52张)
int_指数;
};
甲板{
//起始甲板指数为零
_指数=0;
_pCardList=新卡[卡组中的卡总数];
//套装中的卡片总数=13
对于(int-iRank=0;iRank//您不能两次声明
\u pCardList

class Deck {
private:
    Card cards[TOTAL_CARDS_IN_DECK];
    // Card *_pCardList[52]; // FIRST TIME (useless)
    Card *_pCardList;         // SECOND TIME (this should be private)
    int _index;               // This should also be private
public:
    Deck();
    ~Deck();
    void Shuffle();
    Card DrawCard();
};
小奖励:对于drawfunction,您可以执行以下操作:

Card Deck::DrawCard(){
    return _pCardList[_index++];
}

这是因为
\u index++
在增加它之前返回
\u index
的值。

卡片组中的
卡片总数
套装中的卡片总数
和其他定义的全局值在哪里?如果我只是取出PCCardList并使用“卡片”,因为两者都包含52个元素的数组,所以我可以这样做:
code
Card-Deck::DrawCard(){return cards[_index++];}