Advertisement
Baxram97

Untitled

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