私のコードはすでにカードのデッキを作成していますが、どうすればそれをシャッフルできますか? シャッフル機能が動作していないようです。他にも間違いがあるかもしれませんが、見れたら教えてください。コンパイルして実行しますが、カードを順番にリストします。
#include <iostream>
#include <string>
#include <ctime>
#include <vector>
using namespace std;
class Card{
public:
int face;
int suit;
void setData(int f, int s){
face = f;
suit = s;
}
string toString(int F, int S){
static string faces[13] = {"Two", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine", "Ten", "Jack", "Queen", "King", "Ace"};
static string suits[4] = {"Clubs", "Spades", "Diamonds", "Hearts"};
string FandS = faces[F] + " of " + suits[S] + "\n";
return FandS;
}
};
class DeckOfCards:public Card{
public:
Card deck[13][4];
int currentCard;
void shuffle(){
srand (time(0));
Card temp[13][4]; int R, r;
for(int shuf=0; shuf<52; shuf++){
for(int i=0; i<13; i++){
for(int j=0; j<4; j++){
R = rand()%13;
r = rand()%4;
temp[i][j] = deck[i][j];
deck[i][j] = deck[R][r];
deck[R][r] = temp[i][j];
}
}
}
}
bool moreCards(){
currentCard=52;
currentCard--;
if(currentCard>0){
return true;
}else
return false;
}
void dealCard(){
for(int i=0; i<13; i++){
for(int j=0; j<4; j++){
cout << toString(i, j);
}
}
}
DeckOfCards(){
for(int i=0; i<13; i++){
for(int j=0; j<4; j++){
deck[i][j].setData(face, suit);
}
}
}
};
int main(){
DeckOfCards myDeck;
myDeck.shuffle();
myDeck.dealCard();
return 0;
}