Advertisement
Baxram97

Untitled

Feb 28th, 2022
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.55 KB | None | 0 0
  1. #include <iostream>
  2. #include <queue>
  3. #include <ctime>
  4.  
  5. using namespace std;
  6.  
  7. class myGame {
  8. private:
  9.     static const int arrSIZE = 4;
  10.     unsigned char wait[arrSIZE + 1]{};
  11.     int queueLen;
  12. public:
  13.     myGame() : queueLen(0) {};
  14.  
  15.     ~myGame() { Clear(); }
  16.  
  17.     void Clear();
  18.  
  19.     void add(char c);
  20.  
  21.     bool extract();
  22.  
  23.     bool isFull() const;
  24.  
  25.     bool isEmpty() const;
  26.  
  27.     void show();
  28.  
  29.     void showTwo();
  30.  
  31.     friend void showDrums(myGame *A, int SIZE);
  32.  
  33.     friend void initDrums(myGame *A, int SIZE);
  34.  
  35.     friend void ronateDrums(myGame *A, int SIZE);
  36.  
  37.     friend void isWin(myGame *A, int SIZE);
  38.  
  39. };
  40.  
  41. void myGame::Clear() {
  42.     queueLen = 0;
  43.  
  44. }
  45.  
  46. bool myGame::isFull() const {
  47.     return queueLen == arrSIZE;
  48. }
  49.  
  50. void myGame::add(char c) {
  51.     if (!isFull()) {
  52.         wait[queueLen++] = c;
  53.     } else {
  54.         cout << "Oh, no… Array is full! " << endl;
  55.     }
  56. }
  57.  
  58.  
  59. bool myGame::isEmpty() const {
  60.     return queueLen == 0;
  61. }
  62.  
  63. bool myGame::extract() {
  64.     if (!isEmpty()) {
  65.         int tmp;
  66.         tmp = wait[0];
  67.         for (int i = 0; i < queueLen; ++i) {
  68.             wait[i + 1] = wait[i];
  69.         }
  70.         wait[queueLen + 1] = tmp;
  71.         return true;
  72.     } else {
  73.         cout << "Oops… Array is empty! " << endl;
  74.         return false;
  75.     }
  76. }
  77.  
  78. void myGame::show() {
  79.     showTwo();
  80.     cout << endl;
  81. }
  82.  
  83. void myGame::showTwo() {
  84.     for (int i = 0; i < queueLen; ++i) {
  85.         cout << wait[i] << " ";
  86.  
  87.     }
  88. }
  89.  
  90. void showDrums(myGame *A, int SIZE) {
  91.     for (int i = 0; i < SIZE; ++i) {
  92.         (A + i)->show();
  93.     }
  94.  
  95. }
  96.  
  97. void initDrums(myGame *A, int SIZE) {
  98.     for (int i = 0; i < SIZE; ++i) {
  99.         int num, num2 = 0;
  100.         while (!(A + i)->isFull()) {
  101.             num = rand() % (myGame::arrSIZE) + 1;
  102.             if (num == num2) {
  103.                 cout << " " << endl;
  104.             } else {
  105.                 (A + i)->add(num);
  106.                 num2 = num;
  107.             }
  108.  
  109.         }
  110.     }
  111. }
  112.  
  113. void ronateDrums(myGame *A, int SIZE) {
  114.     for (int i = 0; i < SIZE; ++i) {
  115.         int n;
  116.         n = rand() % 200;
  117.         for (int j = 0; j < n; ++j) {
  118.             (A + i)->extract();
  119.             for (int k = 0; k < 20000000; k = k + 7) {
  120.  
  121.             }
  122.             (A + i)->showTwo();
  123.             for (int k = 0; k < myGame::arrSIZE; ++k) {
  124.                 cout << "\r\r";
  125.             }
  126.  
  127.         }
  128.         (A + i)->showTwo();
  129.         cout << " Drum was " << n << " rotated" << endl;
  130.  
  131.     }
  132. }
  133.  
  134. void isWin(myGame *A, int SIZE) {
  135.     int w = rand() % 20 + 10;
  136.  
  137.     for (int i = 0; i < myGame::arrSIZE; ++i) {
  138.         int flag = 0;
  139.         for (int j = 1; j < SIZE; ++j) {
  140.             if ((A + j - 1)->wait[i] == (A + j)->wait[i]) {
  141.                 flag++;
  142.             } else {
  143.                 flag = 0;
  144.                 break;
  145.             }
  146.         }
  147.         if (flag)
  148.             w *= 10;
  149.      
  150.     }
  151.  
  152.     if (w) {
  153.         cout << "You Win! " << " " << w << "$" << endl;
  154.     } else {
  155.         cout << "You Lose! " << endl;
  156.     }
  157.  
  158. }
  159.  
  160.  
  161. int main() {
  162.     srand(time(nullptr));
  163.     const int SIZE = 20;
  164.     myGame A[SIZE];
  165.  
  166.     initDrums(A, SIZE);
  167.     showDrums(A, SIZE);
  168.     puts("Press Enter: ");
  169.     getchar();
  170.     system("clear");
  171.     ronateDrums(A, SIZE);
  172.     isWin(A, SIZE);
  173.  
  174. /*
  175.     queue<int> q;
  176.     q.push(55);
  177.     q.push(22);
  178.     q.push(19);
  179.     q.push(7);
  180.  
  181.  
  182.     while (!q.empty()) {
  183.         cout << q.front() << endl;
  184.         cout << "Elements count: " << q.size() << endl;
  185.         q.pop();
  186.  
  187.     }
  188. */
  189.  
  190.  
  191.  
  192.  
  193.     return 0;
  194. }
  195.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement