why is it that when i try to print out my cards my shuffle function is not changing the arrangement of my DECKSIZE array? more specifically the array cards[1] is the same for each print out....
Code:
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<time.h>
#define DECKSIZE 52
#define VALUE 9
#define FACE 4
typedef struct {
int value;
char* suit;
char* name;
}Card;
Card cards[DECKSIZE];
char *faceName[]={"two","three","four","five","six","seven","eight","nine",
"ten","jack","queen","king","ace"};
char *suitName[]={"spades","diamonds","hearts","clubs"};
void printDeck(){
int i;
for (i=0;i<6000;i++){
int j = i+ rand()%(6000-i);
this=rand()%DECKSIZE;
that=rand()%DECKSIZE;
while(this==that)that=rand()%(52+1);
//printf("shuffle card%d with card %d\n", this, that);
temp=cards[this];
cards[this]=cards[that];
cards[that]=temp;
}
}
int main(){
int suitCount=0;
int faceCount=0;
int i;
for(i=0;i<DECKSIZE;i++){
if(faceCount<9){
cards[i].value=faceCount+2;
}else{
cards[i].value=10;
}
cards[i].suit=suitName[suitCount];
cards[i].name=faceName[faceCount++];
if(faceCount==13){
cards[i].value=11;
suitCount++;
faceCount=0;
}
}
{
//printDeck();
//shuffleDeck();
//printDeck();
}
int P_hand, D_hand;
P_hand=rand() %52+1;
D_hand=rand() %52+1;
shuffleDeck();
printf("%s of %s,----%s of %s\n ",cards[1].name,cards[3].suit,cards[4].name,cards[2].suit );
shuffleDeck();
printf("%s of %s,----%s of %s\n",cards[1].name,cards[3].suit,cards[4].name,cards[2].suit );
shuffleDeck();
return 0;
}