#ifndef HAND_H
#define HAND_H
#include <string>
#include "card.h"#include <vector>
using namespace std;
class Hand
{
public:
Hand();
//Hand(int s);
//Hand(int s, Card myH[]);
void dealCard(int loc, Card c);
int size();
Card getCard(int i);
void setCardEqual(Card mH[],Card mH2[],int where);
bool isAloud(Card a,Card b);
void setCard(Card a, int pos);
void blankCard(int pos);
// string toString();private:
int handSize;
//Card *myHand;
vector<Card> myHand;
};
#endif#include "hand.h"
Hand::Hand()
{
handSize=7;
vector<Card> myHand;
for (int i = 0; i < handSize; i++)
{
Card c;
myHand[i] = c;
}
}
// Hand::Hand(int s)
// {
// handSize = s;
// myHand = new Card<Card>;
// for (int i = 0; i < handSize; i++)
// {
// Card c;
// myHand[i] = c;
// }
// }
//Hand::Hand(int s, Card myH[])
//{
// handSize = s;
// myHand = new Card[handSize];
// for (int i = 0; i < handSize; i++)
// {
// myHand[i] = myH[i];
// }
//}
int Hand::size()
{
return myHand.size();
}
void Hand::dealCard(int loc, Card c)
{
if (loc < myHand.size())
myHand.push_back(c);
}
Card Hand::getCard(int i)
{
Card a=myHand[i];
return a;
}
bool Hand::isAloud(Card a,Card b)
{
bool aloud=false;
if(a.getColor()==b.getColor()|| a.getValue()==b.getValue()|| a.getValue()==-1)
{
aloud=true;
}
else
{
aloud=false;
}
return aloud;
}
void Hand::setCard(Card a, int pos)
{
myHand[pos]=a;
}
void Hand::blankCard(int pos)
{
myHand[pos].setBlank();
}
Проблема в том, что в нем есть ошибки компоновщика, и я не очень понимаю, можно ли возвращать векторы в качестве методов.
Я могу предоставить вам весь класс по запросу. Я просто застрял на этой части, и тогда я должен быть в порядке.
Задача ещё не решена.
Других решений пока нет …