1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81
|
#include <stdlib.h>
#include <windows.h>
#include <ctime>
#include <cstdlib>
#include <iostream>
#include <vector>
#include <string>
using namespace std;
class Card
{ public:
typedef void (*FunctType)(vector<Card> &KaibaHand, vector<Card> &KaibaDeck, vector<Card> &, vector< vector<Card> > &, vector<Card> &KaibaGraveyard, vector<Card> &YugiGraveyard, int &, int &);
FunctType GetEffect() {return *Effect;}
void SetEffect(FunctType* setEffect) {Effect = setEffect; }
string GetName() {return Name;}
void SetName(const string& setName) {Name = setName; }
private:
FunctType* Effect;
string Name;
};
typedef void (*FunctType)(
vector<Card> &,
vector<Card> &,
vector< vector<Card> > &,
vector<Card> &,
vector<Card> &);
vector<Card> KaibaDeck(40);
vector< vector<Card> > Field(4, vector<Card>(5));
vector<Card> KaibaHand;
//void KMP( FunctType* fn )
void KMP(vector<Card> &KaibaDeck)
{
vector<Card> v1;
vector<vector<Card> > v2;
int num;
cout<<"enter a number"<<endl;
cin>>num;
KaibaHand.push_back(KaibaDeck[num]);
Field[0][0]=KaibaHand[0];
Field[0][0].GetEffect();// problem here
}
void HEAVYSTORM(vector<Card> &,
vector<Card> &,
vector< vector<Card> > &,
vector<Card> &,
vector<Card> &)
{
cout<<"This card destroys ALL magic and traps cards on the field!!"<<endl;
for (int i=0; i<5; i++)
{
Field[3][i]=Card();
}
}
void POTOFGREED(vector<Card> &,
vector<Card> &,
vector< vector<Card> > &,
vector<Card> &,
vector<Card> &)
{cout<<" pot of greed"<<endl;}
int main()
{
// FunctType vector<Card> KaibaDeck(2);
vector<Card> KaibaDeck(2); //I have no idea what to do here. I just want a Card() vector that can store functions OR have the SetEffect member function be able to take in the HEAVYSTORM and POTOFGREED functions
//KaibaDeck[0] = HEAVYSTORM;
//KaibaDeck[1] = POTOFGREED;
KaibaDeck[0].SetEffect(HEAVYSTORM);
KaibaDeck[1].SetEffect(POTOFGREED);
KMP(KaibaDeck);
return 0;
}
| |