Advertisement
b0b3kpl

Untitled

Sep 27th, 2016
125
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.44 KB | None | 0 0
  1. // Magic_trick.cpp : Defines the entry point for the console application.
  2. //
  3.  
  4. #include "stdafx.h"
  5. #include <iostream>
  6. #include <cstdlib>
  7. #include <string>
  8. #include <time.h>
  9. #include <vector>
  10.  
  11. using namespace std;
  12.  
  13. class Deck
  14. {
  15.     vector <int> dck;
  16.     int size;
  17.     int buf;
  18.     char choice;
  19.  
  20.     bool check(int rand, vector <int> deck, int position)
  21.     {
  22.         int help = 0;
  23.  
  24.         if (position == 0) return false;
  25.  
  26.         do
  27.         {
  28.             if (rand == deck[help])
  29.             {
  30.                 return true;
  31.             }
  32.             help++;
  33.         } while (help < position);
  34.  
  35.         return false;
  36.     }
  37.     int randNum()
  38.     {
  39.         srand(time(NULL));
  40.         return (rand() % 24) + 1;
  41.     }
  42.  
  43. public:
  44.  
  45.     Deck(int a)
  46.         :size(a)
  47.     {
  48.         vector <int> dck = vector <int> (size);
  49.     }
  50.     void first_deck()
  51.     {
  52.         int counter = 0;
  53.  
  54.         do {
  55.             buf = randNum();
  56.             if (check(buf, dck, counter) == false)
  57.             {
  58.                 dck.push_back(buf);
  59.                 counter++;
  60.             }
  61.         } while (counter < 24);
  62.  
  63.     }
  64.     void set_deck(Deck &pnt)
  65.     {
  66.         dck.clear();
  67.         int i = 0;
  68.         do
  69.         {
  70.             buf = randNum();
  71.             if (check(buf, pnt.dck, i) == false)
  72.             {
  73.                 dck.push_back(buf);
  74.                 i++;
  75.             }
  76.         } while (i + dck.size() <= 24);
  77.  
  78.         i = 0;
  79.         do
  80.         {
  81.             dck.push_back( pnt.dck[i]);
  82.             i++;
  83.         } while (dck.size() <= 24);
  84.     }
  85.     void show_deck(int number)
  86.     {
  87.         int cards=0;
  88.  
  89.         cout << number << "." << endl;
  90.         while (cards < dck.size())
  91.         {
  92.             cout << dck[cards] << ", ";
  93.             cards++;
  94.         }
  95.         cout << endl;
  96.     }
  97.     void split_deck(Deck one, Deck two, Deck three, Deck four, int time)
  98.     {
  99.         Deck* on=&one;
  100.         Deck* tw=&two;
  101.         Deck* th=&three;
  102.         Deck* fo=&four;
  103.         on->dck.clear();
  104.         tw->dck.clear();
  105.         th->dck.clear();
  106.         fo->dck.clear();
  107.         int buff;
  108.  
  109.         for (int i = 0; i < 24; i++)
  110.         {
  111.             buff = dck[i];
  112.             if (i%time == 0) on->dck.push_back(buff);
  113.             if (i%time == 1) tw->dck.push_back(buff);
  114.             if (i%time == 2) th->dck.push_back(buff);
  115.             if (i%time == 3) fo->dck.push_back(buff);
  116.         }
  117.     }
  118.     void guess()
  119.     {
  120.         cout << "Your number is: " << dck[9] << endl;
  121.     }
  122. };
  123.  
  124. class Magician
  125. {
  126. public:
  127.     Magician()
  128.     {
  129.         cout << "I going to show you a magic trick. \nChoose a number between 1 and 24.\n";
  130.         system("pause");
  131.     }
  132.  
  133.     void inform()
  134.     {
  135.         cout << "Chose a deck with your choosen number:" << endl;
  136.     }
  137. };
  138.  
  139.     int main()
  140.     {
  141.         char choice;
  142.  
  143.         Deck main_deck(24);
  144.         Deck* dmain = &main_deck;
  145.         dmain->first_deck();
  146.  
  147.         Deck one(6), two(6), three(6), four(6);
  148.         dmain->split_deck(one, two, three, four, 4);
  149.         Deck* dchosen=&one;
  150.  
  151.         Magician houdini;
  152.  
  153.         houdini.inform();
  154.         one.show_deck(1);
  155.         two.show_deck(2);
  156.         three.show_deck(3);
  157.         four.show_deck(4);
  158.  
  159.         cin >> choice;
  160.  
  161.         switch (choice)
  162.         {
  163.         case '1':
  164.             dchosen = &one; break;
  165.         case '2':
  166.             dchosen = &two; break;
  167.         case '3':
  168.             dchosen = &three; break;
  169.         case '4':
  170.             dchosen = &four; break;
  171.         }
  172.  
  173.         dmain->set_deck(*dchosen);
  174.         dmain->split_deck(one, two, three, four, 3);
  175.         houdini.inform();
  176.         one.show_deck(1);
  177.         two.show_deck(2);
  178.         three.show_deck(3);
  179.  
  180.         cin >> choice;
  181.  
  182.         switch (choice)
  183.         {
  184.         case '1':
  185.             dchosen = &one; break;
  186.         case '2':
  187.             dchosen = &two; break;
  188.         case '3':
  189.             dchosen = &three; break;
  190.         }
  191.  
  192.         dmain->set_deck(*dchosen);
  193.         dmain->split_deck(one, two, three, four, 2);
  194.         houdini.inform();
  195.         one.show_deck(1);
  196.         two.show_deck(2);
  197.  
  198.         cin >> choice;
  199.  
  200.         switch (choice)
  201.         {
  202.         case '1':
  203.             dchosen = &one; break;
  204.         case '2':
  205.             dchosen = &two; break;
  206.         }
  207.  
  208.         dmain->set_deck(*dchosen);
  209.         dmain->guess();
  210.  
  211.         system("pause");
  212.  
  213.         return 0;
  214.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement