## Poker game dealer and player swapping cards

Hello guys and girls and Happy New Year ! I'm currently making a poker game with two players and a single player version that deals 5 cards to each player and it analyses who wins. I need to make it so the player and the dealer are able to change 1 or 2 cards from their hand but I'm not sure how to make it work since the hands aren't stored in an Arrays
Code:
```#include <stdio.h>
#include <time.h>
#include "stdafx.h"
#include <string.h>

#define SUITS 4
#define FACES 13
#define RANKS 13

//global variables
int straight, flush, four, three;
int pairs = 0;

void analyzeHand(int sInHand[], int fInHand[])
{
int num_consec = 0;
int rank, suit;

straight = 0;
flush = 0;
four = 0;
three = 0;
pairs = 0;

for (suit = 0; suit < SUITS; suit++)
if (sInHand[suit] == 5)
flush = 1;

rank = 0;
while (fInHand[rank] == 0)
rank++;

for (; rank < FACES && fInHand[rank]; rank++)
num_consec++;

if (num_consec == 5) {
straight = 1;
return;
}

for (rank = 0; rank < RANKS; rank++) {
if (fInHand[rank] == 4)
four = 1;
if (fInHand[rank] == 3)
three = 1;
if (fInHand[rank] == 2)
pairs++;
}

}

void dealCard(int sInHand[], int fInHand[], char *suits[], char *faces[], int deck[][FACES]) {
int suitIndex, faceIndex;

suitIndex = rand() % 4;         // generates 1 random card
faceIndex = rand() % 13;    // generates 1 random card

while (deck[suitIndex][faceIndex] == 1) {  // checks if array slot is empty
suitIndex = rand() % 4;         // checks if the card has been given out
faceIndex = rand() % 13;        // checks if the card has been given out

}
deck[suitIndex][faceIndex] = 1; // checks if array slot is empty // fills the deck with 1's

// stores the power of the card

printf("%s of %s \n", faces[faceIndex], suits[suitIndex]);   // number of the card in the array

fInHand[faceIndex]++;
sInHand[suitIndex]++;
printf("%d", fInHand[faceIndex]);
printf("%d", sInHand[suitIndex]);

}

void Question5()
{
int i, j;
int swap;
int q;
int ni, nj;

int DeckC = {
{ 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 }
};
printf("Before\n");
for (i = 0; i < 4; i++)
{
for (j = 0; j < 13; j++)

{
printf("%d ", DeckC[i][j]);
}
printf("\n");
}   printf("\n");
for (q = 0; q < 3; q++)
for (i = 0; i < 4; i++)
for (j = 0; j < 13; j++)
{
ni = rand() % 4;
nj = rand() % 13;
swap = DeckC[i][j];
DeckC[i][j] = DeckC[ni][nj];
DeckC[ni][nj] = swap;
}
printf("After\n");
for (i = 0; i < 4; i++)
{
for (j = 0; j < 13; j++)

{
printf("%d ", DeckC[i][j]);
}
printf("\n");
}
}

void dealHand(int sInHand[], int fInHand[], char *suits[], char *faces[], int deck[][FACES]) {
int i;
for (i = 0; i < 5; i++)

dealCard(sInHand, fInHand, suits, faces, deck);
printf("\n");
}

/* assign value to hand and print results */
void printResult(int sInHand[], int fInHand[], int *pointValue)

{
int points;

analyzeHand(sInHand, fInHand);

if (straight && flush)
{
printf("Straight flush\n\n");
*pointValue = 9;
points = *pointValue;
}

else if (four) {

printf("Four of a kind\n\n");

*pointValue = 8;

points = *pointValue;

}

else if (three && pairs == 1) {

printf("Full house\n\n");

*pointValue = 7;

points = *pointValue;

}

else if (flush) {
printf("Flush\n\n");
*pointValue = 6;

points = *pointValue;

}

else if (straight) {

printf("Straight\n\n");

*pointValue = 5;

points = *pointValue;

}

else if (three) {

printf("Three of a kind\n\n");

*pointValue = 4;

points = *pointValue;

}

else if (pairs == 2) {

printf("Two pairs\n\n");

*pointValue = 3;

points = *pointValue;

}

else if (pairs == 1) {

printf("Pair\n\n");

*pointValue = 2;

points = *pointValue;

}

else if (pairs == 0) {
printf("High card\n\n");
*pointValue = 1;
points = *pointValue;

}

}

int main() {
char *suits = { "Hearts", "Diamonds", "Spades", "Clubs" }; /// 8
char *faces = { "Two", "Three", "Four", "Five", "Six", "Seven",
"Eight", "Nine", "Ten", "Jack", "Queen", "King", "Ace" }; ///
int deck = { { 0 } }; /// initialises with "AVAILABLE"

int sInHand = { 0 };  // player one
int fInHand = { 0 }; // player one
int SInHand2 = { 0 }; // player two
int FInHand2 = { 0 }; // player two
int numbersw;
int i;
int j;
int P1Points = 0;
int P2Points = 0;
srand(time(NULL));
printf("Press 1 for single player and 2 for multiplayer or 3 to display good shuffling");
scanf_s("%d", &numbersw);
if (numbersw == 1)
{
printf("Player 1 was dealt:\n\n");
dealHand(sInHand, fInHand, suits, faces, deck);
analyzeHand(sInHand, fInHand);
printResult(sInHand, fInHand, &P1Points);

printf("Player 2 was dealt:\n\n");
dealHand(SInHand2, FInHand2, suits, faces, deck);
analyzeHand(SInHand2, FInHand2);
printResult(SInHand2, FInHand2, &P2Points);

if (P1Points > P2Points) {
printf("Player One has won\n");
}
else if (P1Points < P2Points) {
printf("Player Two has won\n");
}
else
printf("A Tie\n");
system("pause");
}

else if (numbersw == 2)
{
printf("Player 1 was dealt:\n\n");
dealHand(sInHand, fInHand, suits, faces, deck);
analyzeHand(sInHand, fInHand);
printResult(sInHand, fInHand, &P1Points);

printf("Dealer was dealt:\n\n");
//dealHand(SInHand2, FInHand2, suits, faces, deck); // to hide the cards
analyzeHand(SInHand2, FInHand2);
printResult(SInHand2, FInHand2, &P2Points);

if (P1Points > P2Points) {
printf("Player One has won\n");
}
else if (P1Points < P2Points) {
printf("Dealer has won\n");
}
else
printf("A Tie\n");
system("pause");
}
else if (numbersw == 3)
{
Question5();
}

else if (numbersw != 1 || 2)
{
printf("Incorrect input\n");
printf("Press 1 for single player and 2 for multiplayer\n");
scanf_s("%d", &numbersw);
}

}```