#include #include #include #include #include void shuffle(char *deck[52], int version) { char *newdeck[52]; printf("In shuffle\n"); //I plan to create other combinations for a shuffled deck, but starting with only one switch (version) { //this sets a value in newdeck to a value in deck, obviously mixing the order //this is also where I get my segmentation fault. case 1: newdeck[0] = deck[26]; newdeck[1] = deck[13]; newdeck[2] = deck[33]; newdeck[3] = deck[45]; newdeck[4] = deck[19]; newdeck[5] = deck[36]; newdeck[6] = deck[42]; newdeck[7] = deck[24]; newdeck[8] = deck[51]; newdeck[9] = deck[22]; newdeck[10] = deck[15]; newdeck[11] = deck[10]; newdeck[12] = deck[3]; newdeck[13] = deck[6]; newdeck[14] = deck[43]; newdeck[15] = deck[48]; newdeck[16] = deck[27]; newdeck[17] = deck[18]; newdeck[18] = deck[1]; newdeck[19] = deck[31]; newdeck[20] = deck[14]; newdeck[21] = deck[0]; newdeck[22] = deck[21]; newdeck[23] = deck[12]; newdeck[24] = deck[41]; newdeck[25] = deck[35]; newdeck[26] = deck[16]; newdeck[27] = deck[4]; newdeck[28] = deck[9]; newdeck[29] = deck[40]; newdeck[30] = deck[25]; newdeck[31] = deck[34]; newdeck[32] = deck[44]; newdeck[33] = deck[7]; newdeck[34] = deck[5]; newdeck[35] = deck[38]; newdeck[36] = deck[46]; newdeck[37] = deck[37]; newdeck[38] = deck[49]; newdeck[39] = deck[39]; newdeck[40] = deck[23]; newdeck[41] = deck[50]; newdeck[42] = deck[20]; newdeck[43] = deck[2]; newdeck[44] = deck[11]; newdeck[45] = deck[47]; newdeck[46] = deck[28]; newdeck[47] = deck[17]; newdeck[48] = deck[30]; newdeck[49] = deck[8]; newdeck[50] = deck[29]; newdeck[51] = deck[32]; break; } memcpy(deck, newdeck, 51 * sizeof(*deck)); printf("Leaving shuffle\n"); //return the shuffled deck return; } int main(void) { //declare a deck of cards. char *deck[] = { "2S", "3S", "4S", "5S", "6S", "7S", "8S", "9S", "TS", "JS", "QS", "KS", "AS", "2H", "3H", "4H", "5H", "6H", "7H", "8H", "9H", "TH", "JH", "QH", "KH", "AH", "2C", "3C", "4C", "5C", "6C", "7C", "8C", "9C", "TC", "JC", "QC", "KC", "AC", "2D", "3D", "4D", "5D", "6D", "7D", "8D", "9D", "TD", "JD", "QD", "KD", "AD" }; //a counter int i; //this is here for debugging purposes as well as the other similar occurrences printf("Entering shuffle\n"); //shuffles the deck shuffle(deck, 1); printf("Printing deck\n"); for ( i = 0 ; i < 52 ; i++ ) { //print the values in deck (now shuffled and set equal to newdeck from "shuffle" function. printf("%s ", deck[i]); } return 0; }