Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <iostream>
- #include <math.h>
- #include <time.h>
- #include <stdlib.h>
- #include <conio.h> // to getch
- #include <windows.h> // to use malloc
- #define SIZE 52
- #define HALF_SIZE 26
- using namespace std;
- typedef enum Suit { Diamonds, Hearts, Spades, Clubs } Suit_t;
- typedef enum Power { Two = 2, Three, Four, Five, Six, Seven, Eight, Nine, Ten, Jack, Queen, King, Ace } Power_t;
- typedef struct card {
- Suit_t suit;
- Power_t power;
- }cards;
- typedef struct deck { // alokacja struktury
- cards* p_deck;
- int size;
- }decks;
- static int x = 1;
- int k; // parametr ile górnych kart mają tworzyć
- void Deck_Creator(cards* deck) { // od 5 do 13 == od 20 do 52
- cards temp = {}; // co 13 jest karta 2 (index 0)
- for (int i = 0; i < SIZE - (4 * k); i++) {
- deck[i].suit = (Suit)(i / (13-k));
- deck[i].power = (Power)(i % (13-k));
- }
- /* for (int i = (SIZE - (4 * k)); i >= 0; i--) {
- deck[i].suit = (Suit)(i / 13);
- deck[i].power = (Power)(i % (13 - k));
- } */
- // deck[i].power = (Power)(i % 13);
- // temp.power = deck[i].power;
- // deck[i].power = deck[13 - i].power;
- // deck[13 - i].power = temp.power;
- }
- void Display_Deck(cards* deck) {
- for (int i = 0; i < SIZE - (4*k); i++) {
- if (deck[i].suit == Diamonds) {
- cout << "Diamond ";
- }
- else if (deck[i].suit == Hearts) {
- cout << "Heart ";
- }
- else if (deck[i].suit == Spades) {
- cout << "Spade ";
- }
- else if (deck[i].suit == Clubs) {
- cout << "Club ";
- }
- //if (deck[i].power >= 3) {
- cout << " " << deck[i].power << " | ";
- //}
- //else cout
- }
- }
- void Deck_Shuffler(cards* deck) {
- int changer = 0; // Index of changed card
- cards temp = {}; // Temporary holding place for changing
- srand(time(NULL)); // Function to get random numbers with current time
- for (int i = 0; i < SIZE; i++) {
- changer = rand() % SIZE; // Generating random number from 0 to 51
- temp = deck[i];
- deck[i] = deck[changer]; // if changer = i
- deck[changer] = temp;
- }
- }
- void Deck1_Creator(cards* deck1, cards* deck, decks* q_deck1) {
- for (int i = 0; i < HALF_SIZE; i++) {
- memcpy(&deck1[i], &deck[i], sizeof(cards)); // Copying content using memcpy function
- }
- q_deck1->p_deck = deck1;
- q_deck1->size = HALF_SIZE;
- }
- void Deck2_Creator(cards* deck, cards* deck2, decks* q_deck2) {
- int i = HALF_SIZE;
- for (int i = 26; i < SIZE; i++) {
- deck2[i - HALF_SIZE] = deck[i]; // Simple copying struct array content into another array
- }
- q_deck2->p_deck = deck2;
- q_deck2->size = HALF_SIZE;
- }
- void table_creator(decks* q_deck, cards* array) {
- q_deck->p_deck = array;
- q_deck->size = 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement