Advertisement
Andrey_ZoZ

ProblemCycle

May 17th, 2020
109
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 29.36 KB | None | 0 0
  1. #include <ctime>
  2. #include<iostream>
  3. #include"windows.h"
  4. #include <chrono>
  5. #include <thread>
  6. #include <conio.h>
  7. using namespace std;
  8. const int minX{ 1 };
  9. const int minY{ 1 };
  10. const int maxX{ 79 };
  11. const int maxY{ 24 };
  12. const char* CSI{ "\033[" };
  13. const char* hideCursor{ "?25l" };
  14. const char* clearScreen{ "2J" };
  15. const int kbDeltaY{ 1 };
  16. void gotoxy(int xpos, int ypos)
  17. {
  18.     COORD scrn;
  19.     HANDLE hOuput = GetStdHandle(STD_OUTPUT_HANDLE);
  20.     scrn.X = xpos; scrn.Y = ypos;
  21.     SetConsoleCursorPosition(hOuput, scrn);
  22. }
  23. void printPole()
  24. {
  25.     for (int i = 0; i <= maxX; i++)
  26.     {
  27.         gotoxy(i, 0);
  28.         cout << "=";
  29.         gotoxy(i, maxY);
  30.         cout << "=";
  31.     }
  32.     for (int i = 0; i <= maxY; i++)
  33.     {
  34.         gotoxy(0, i);
  35.         cout << "|";
  36.         gotoxy(maxX, i);
  37.         cout << "|";
  38.  
  39.     }
  40. }
  41. void tetris()
  42. {
  43.     cout << CSI << hideCursor;
  44.     srand(time(NULL));
  45.     int startPositionX = minX+5;
  46.     int startPositionY = 1;
  47.     printPole();
  48.     int coords = startPositionY;
  49.     int** Pole = new int* [maxY];
  50.     int* bigArr = new int[maxY * maxX];
  51.     for (int i = 0; i < maxY; i++)
  52.     {
  53.         Pole[i] = bigArr + i * maxX;
  54.     }
  55.     int lenghtBlock = 3;
  56.     //Block 1 | and ---
  57.     //        |
  58.     //        |
  59.     //Block 1
  60.     //Block 3 ---
  61.     //         ---
  62.     //Block 3
  63.     //Block 4  |
  64.     //         |  |
  65.     //         |  |
  66.     //            |
  67.     while (coords != maxY)
  68.     {
  69.         int randBlock = 3;//rand() % 4 + 1;
  70.         startPositionX = minX + 5;
  71.         startPositionY = 1;
  72.         while (true)
  73.         {
  74.             if (randBlock == 1)
  75.             {
  76.                 char* board = new char[lenghtBlock];
  77.                 for (int i = 0; i < lenghtBlock; i++)
  78.                 {
  79.                     board[i] = '-';
  80.                 }
  81.                 board[lenghtBlock] = '\0';
  82.                 gotoxy(startPositionX, startPositionY += 1);
  83.                 cout << board;
  84.                 if (_kbhit())
  85.                 {
  86.                     auto key{ _getch() };
  87.                     if (key == 'a' or key == 'A') {
  88.                         if (startPositionX > minX and Pole[startPositionY][startPositionX - 1] != 1) {
  89.                             gotoxy(startPositionX + lenghtBlock - 1, startPositionY);  cout << " "; startPositionX--;
  90.                             if (startPositionX > minX and Pole[startPositionY][startPositionX - 1] != 1) {
  91.                                 gotoxy(startPositionX + lenghtBlock - 1, startPositionY);  cout << " "; startPositionX--;
  92.                                 if (startPositionX > minX and Pole[startPositionY][startPositionX - 1] != 1) { gotoxy(startPositionX + lenghtBlock - 1, startPositionY);  cout << " "; startPositionX--; }
  93.                             } gotoxy(startPositionX, startPositionY); cout << board;
  94.                         };
  95.                     };
  96.                     if (key == 'd' or key == 'D') {
  97.                         if (startPositionX + lenghtBlock < maxX and Pole[startPositionY][startPositionX + lenghtBlock] != 1) {
  98.                             gotoxy(startPositionX, startPositionY); cout << " "; startPositionX++;
  99.                             if (startPositionX + lenghtBlock < maxX and Pole[startPositionY][startPositionX + lenghtBlock] != 1) {
  100.                                 gotoxy(startPositionX, startPositionY); cout << " "; startPositionX++;
  101.                                 if (startPositionX + lenghtBlock < maxX and Pole[startPositionY][startPositionX + lenghtBlock] != 1) { gotoxy(startPositionX, startPositionY); cout << " "; startPositionX++; }
  102.                             } gotoxy(startPositionX, startPositionY); cout << board;
  103.                         };
  104.                     };
  105.                 } //Control game
  106.                 Sleep(300);
  107.  
  108.                 int previousX = startPositionX;
  109.                 int previousY = startPositionY;
  110.                 gotoxy(previousX, previousY);
  111.                 for (int i = 0; i < lenghtBlock; i++)
  112.                 {
  113.                     cout << " ";
  114.                 }
  115.                 if (startPositionY == maxY - 1)
  116.                 {
  117.  
  118.                     for (int i = startPositionX; i < startPositionX + lenghtBlock; i++)
  119.                     {
  120.                         Pole[startPositionY][i] = 1;
  121.                     }
  122.                     gotoxy(startPositionX, startPositionY);
  123.                     cout << "---";
  124.                     goto end;
  125.                 }
  126.                 else if (((Pole[startPositionY + 1][startPositionX] == 1) or (Pole[startPositionY + 1][startPositionX + 1] == 1) or (Pole[startPositionY + 1][startPositionX + 2] == 1)))
  127.                 {
  128.                     for (int i = startPositionX; i < startPositionX + lenghtBlock; i++)
  129.                     {
  130.                         Pole[startPositionY][i] = 1;
  131.                     }
  132.                     gotoxy(startPositionX, startPositionY);
  133.                     cout << "---";
  134.                     goto end;
  135.                 }
  136.  
  137.             }
  138.             else if (randBlock == 2)
  139.             {
  140.                 for (int i = 0; i < lenghtBlock; i++)
  141.                 {
  142.                     gotoxy(startPositionX, startPositionY + i);
  143.                     cout << "|";
  144.                 }
  145.                 if (_kbhit())
  146.                 {
  147.                     auto key{ _getch() };
  148.                     if (key == 'a' or key == 'A') {
  149.                         if (startPositionX > minX and Pole[startPositionY][startPositionX - 1] != 1 and Pole[startPositionY + 1][startPositionX - 1] != 1 and Pole[startPositionY + 2][startPositionX - 1] != 1) {
  150.                             for (int i = 0; i < lenghtBlock; i++)
  151.                             {
  152.                                 gotoxy(startPositionX, startPositionY + i);
  153.                                 cout << " ";
  154.                             }  startPositionX--;
  155.                             if (startPositionX > minX and Pole[startPositionY][startPositionX - 1] != 1 and Pole[startPositionY + 1][startPositionX - 1] != 1 and Pole[startPositionY + 2][startPositionX - 1] != 1) {
  156.                                 for (int i = 0; i < lenghtBlock; i++)
  157.                                 {
  158.                                     gotoxy(startPositionX, startPositionY + i);
  159.                                     cout << " ";
  160.                                 } startPositionX--;
  161.                                 if (startPositionX > minX and Pole[startPositionY][startPositionX - 1] != 1 and Pole[startPositionY + 1][startPositionX - 1] != 1 and Pole[startPositionY + 2][startPositionX - 1] != 1) {
  162.                                     for (int i = 0; i < lenghtBlock; i++)
  163.                                     {
  164.                                         gotoxy(startPositionX, startPositionY + i);
  165.                                         cout << " ";
  166.                                     } startPositionX--;
  167.                                 }
  168.                             } for (int i = 0; i < lenghtBlock; i++)
  169.                             {
  170.                                 gotoxy(startPositionX, startPositionY + i);
  171.                                 cout << "|";
  172.                             }
  173.                         };
  174.                     };
  175.                     if (key == 'd' or key == 'D') {
  176.                         if (startPositionX < maxX and Pole[startPositionY][startPositionX + 1] != 1 and Pole[startPositionY + 1][startPositionX + 1] != 1 and Pole[startPositionY + 2][startPositionX + 1] != 1) {
  177.                             for (int i = 0; i < lenghtBlock; i++)
  178.                             {
  179.                                 gotoxy(startPositionX, startPositionY + i);
  180.                                 cout << " ";
  181.                             } startPositionX++;
  182.                             if (startPositionX < maxX and Pole[startPositionY][startPositionX + 1] != 1 and Pole[startPositionY + 1][startPositionX + 1] != 1 and Pole[startPositionY + 2][startPositionX + 1] != 1) {
  183.                                 for (int i = 0; i < lenghtBlock; i++)
  184.                                 {
  185.                                     gotoxy(startPositionX, startPositionY + i);
  186.                                     cout << " ";
  187.                                 } startPositionX++;
  188.                                 if (startPositionX < maxX and Pole[startPositionY][startPositionX + 1] != 1 and Pole[startPositionY + 1][startPositionX + 1] != 1 and Pole[startPositionY + 2][startPositionX + 1] != 1) {
  189.                                     for (int i = 0; i < lenghtBlock; i++)
  190.                                     {
  191.                                         gotoxy(startPositionX, startPositionY + i);
  192.                                         cout << " ";
  193.                                     } startPositionX++;
  194.                                 }
  195.                             } for (int i = 0; i < lenghtBlock; i++)
  196.                             {
  197.                                 gotoxy(startPositionX, startPositionY + i);
  198.                                 cout << "|";
  199.                             }
  200.                         };
  201.                     };
  202.                 } //Control game
  203.                 Sleep(300);
  204.  
  205.                 int previousX = startPositionX;
  206.                 int previousY = startPositionY;
  207.                 startPositionY++;
  208.  
  209.                 for (int i = 0; i < lenghtBlock; i++)
  210.                 {
  211.                     gotoxy(previousX, previousY + i);
  212.                     cout << " ";
  213.                 }
  214.                 if (startPositionY + lenghtBlock == maxY)
  215.                 {
  216.  
  217.                     for (int i = startPositionY; i < startPositionY + lenghtBlock; i++)
  218.                     {
  219.                         Pole[i][startPositionX] = 1;
  220.                     }
  221.                     for (int i = 0; i < lenghtBlock; i++)
  222.                     {
  223.                         gotoxy(startPositionX, startPositionY + i);
  224.                         cout << "|";
  225.                     }
  226.                     goto end;
  227.                 }
  228.                 else if (Pole[startPositionY + lenghtBlock][startPositionX] == 1)
  229.                 {
  230.                     for (int i = startPositionY; i < startPositionY + lenghtBlock; i++)
  231.                     {
  232.                         Pole[i][startPositionX] = 1;
  233.                     }
  234.                     for (int i = 0; i < lenghtBlock; i++)
  235.                     {
  236.                         gotoxy(startPositionX, startPositionY + i);
  237.                         cout << "|";
  238.                     }
  239.                     goto end;
  240.                 }
  241.  
  242.             }
  243.             else if (randBlock == 3)
  244.             {
  245.                 int startPositionX2 = startPositionX + 1;
  246.                 int startPositionY2 = startPositionY + 1;
  247.                 for (int i = 0; i < lenghtBlock; i++)
  248.                 {
  249.                     gotoxy(startPositionX + i, startPositionY);
  250.                     cout << "-";
  251.                 }
  252.                 for (int i = 0; i < lenghtBlock; i++)
  253.                 {
  254.                     gotoxy(startPositionX2 + i, startPositionY2);
  255.                     cout << "-";
  256.                 }
  257.                 if (_kbhit())
  258.                 {
  259.                     auto key{ _getch() };
  260.                     if (key == 'a' or key == 'A') {
  261.                         if (startPositionX > minX and Pole[startPositionY][startPositionX - 1] != 1 and Pole[startPositionY2][startPositionX2 - 1] != 1) {
  262.                             for (int i = 0; i < lenghtBlock; i++)
  263.                             {
  264.                                 gotoxy(startPositionX + i, startPositionY);
  265.                                 cout << " ";
  266.                             }
  267.                             for (int i = 0; i < lenghtBlock; i++)
  268.                             {
  269.                                 gotoxy(startPositionX2 + i, startPositionY2);
  270.                                 cout << " ";
  271.                             } startPositionX--; startPositionX2--;
  272.                             if (startPositionX > minX and Pole[startPositionY][startPositionX - 1] != 1 and Pole[startPositionY2][startPositionX2 - 1] != 1) {
  273.                                 for (int i = 0; i < lenghtBlock; i++)
  274.                                 {
  275.                                     gotoxy(startPositionX + i, startPositionY);
  276.                                     cout << " ";
  277.                                 }
  278.                                 for (int i = 0; i < lenghtBlock; i++)
  279.                                 {
  280.                                     gotoxy(startPositionX2 + i, startPositionY2);
  281.                                     cout << " ";
  282.                                 } startPositionX--; startPositionX2--;
  283.                                 if (startPositionX > minX and Pole[startPositionY][startPositionX - 1] != 1 and Pole[startPositionY2][startPositionX2 - 1] != 1) {
  284.                                     for (int i = 0; i < lenghtBlock; i++)
  285.                                     {
  286.                                         gotoxy(startPositionX + i, startPositionY);
  287.                                         cout << " ";
  288.                                     }
  289.                                     for (int i = 0; i < lenghtBlock; i++)
  290.                                     {
  291.                                         gotoxy(startPositionX2 + i, startPositionY2);
  292.                                         cout << " ";
  293.                                     } startPositionX--; startPositionX2--;
  294.                                 }
  295.                             } for (int i = 0; i < lenghtBlock; i++)
  296.                             {
  297.                                 gotoxy(startPositionX + i, startPositionY);
  298.                                 cout << "-";
  299.                             }
  300.                             for (int i = 0; i < lenghtBlock; i++)
  301.                             {
  302.                                 gotoxy(startPositionX2 + i, startPositionY2);
  303.                                 cout << "-";
  304.                             }
  305.                         };
  306.                     };
  307.                     if (key == 'd' or key == 'D') {
  308.                         if (startPositionX2 < maxX and Pole[startPositionY2][startPositionX2 + 1] != 1 and Pole[startPositionY][startPositionX + 1] != 1) {
  309.                             for (int i = 0; i < lenghtBlock; i++)
  310.                             {
  311.                                 gotoxy(startPositionX + i, startPositionY);
  312.                                 cout << " ";
  313.                             }
  314.                             for (int i = 0; i < lenghtBlock; i++)
  315.                             {
  316.                                 gotoxy(startPositionX2 + i, startPositionY2);
  317.                                 cout << " ";
  318.                             } startPositionX++; startPositionX2++;
  319.                             if (startPositionX2 < maxX and Pole[startPositionY2][startPositionX2 + 1] != 1 and Pole[startPositionY][startPositionX + 1] != 1) {
  320.                                 for (int i = 0; i < lenghtBlock; i++)
  321.                                 {
  322.                                     gotoxy(startPositionX + i, startPositionY);
  323.                                     cout << " ";
  324.                                 }
  325.                                 for (int i = 0; i < lenghtBlock; i++)
  326.                                 {
  327.                                     gotoxy(startPositionX2 + i, startPositionY2);
  328.                                     cout << " ";
  329.                                 } startPositionX++; startPositionX2++;
  330.                                 if (startPositionX2 < maxX and Pole[startPositionY2][startPositionX2 + 1] != 1 and Pole[startPositionY][startPositionX + 1] != 1) {
  331.                                     for (int i = 0; i < lenghtBlock; i++)
  332.                                     {
  333.                                         gotoxy(startPositionX + i, startPositionY);
  334.                                         cout << " ";
  335.                                     }
  336.                                     for (int i = 0; i < lenghtBlock; i++)
  337.                                     {
  338.                                         gotoxy(startPositionX2 + i, startPositionY2);
  339.                                         cout << " ";
  340.                                     } startPositionX++; startPositionX2++;
  341.                                 }
  342.                             } for (int i = 0; i < lenghtBlock; i++)
  343.                             {
  344.                                 gotoxy(startPositionX + i, startPositionY);
  345.                                 cout << "-";
  346.                             }
  347.                             for (int i = 0; i < lenghtBlock; i++)
  348.                             {
  349.                                 gotoxy(startPositionX2 + i, startPositionY2);
  350.                                 cout << "-";
  351.                             }
  352.                         };
  353.                     };
  354.                 } //Control game
  355.                 Sleep(300);
  356.                 int previousX = startPositionX;
  357.                 int previousY = startPositionY;
  358.                 int previousX2 = startPositionX2;
  359.                 int previousY2 = startPositionY2;
  360.  
  361.                 startPositionY++;
  362.                 startPositionY2++;
  363.                 cout << startPositionY<<"\t";
  364.                 cout << startPositionY2<<"\t";
  365.                 for (int i = 0; i < lenghtBlock; i++)
  366.                 {
  367.                     gotoxy(previousX + i, previousY);
  368.                     cout << " ";
  369.                 }
  370.                 for (int i = 0; i < lenghtBlock; i++)
  371.                 {
  372.                     gotoxy(previousX2 + i, previousY2);
  373.                     cout << " ";
  374.                 }
  375.                 //HERE PROBLEM
  376.                 if (startPositionY2 == maxY-1)
  377.                 {
  378.                    
  379.                     for (int i = startPositionX; i < startPositionX + lenghtBlock; i++)
  380.                     {
  381.                        
  382.                         Pole[startPositionY][i] = 1;
  383.                         cout << "Pole["<<startPositionY<<"]["<<startPositionX+i<<"] - Complete ";
  384.                     }
  385.                     for (int i = startPositionX2; i < startPositionX2 + lenghtBlock; i++)
  386.                     {
  387.                         Pole[startPositionY2][i] = 1;
  388.                         cout << "Pole["<<startPositionY<<"]["<<startPositionX+i<<"] - Complete ";
  389.                     }
  390.                     for (int i = 0; i < lenghtBlock; i++)
  391.                     {
  392.                         gotoxy(startPositionX + i, startPositionY);
  393.                         cout << "-";
  394.                     }
  395.                     for (int i = 0; i < lenghtBlock; i++)
  396.                     {
  397.                         gotoxy(startPositionX2 + i, startPositionY2);
  398.                         cout << "-";
  399.                     }
  400.                     goto end;
  401.                 }
  402.                
  403.                 else if (((Pole[startPositionY + 1][startPositionX] == 1) or (Pole[startPositionY + 1][startPositionX + 1] == 1) or (Pole[startPositionY + 1][startPositionX + 2] == 1 or Pole[startPositionY2 + 1][startPositionX2] == 1) or (Pole[startPositionY2 + 1][startPositionX2 + 1] == 1) or (Pole[startPositionY2 + 1][startPositionX2 + 2] == 1)))
  404.                 {
  405.                     for (int i = startPositionX; i < startPositionX + lenghtBlock; i++)
  406.                     {
  407.                         Pole[startPositionY][i] = 1;
  408.                     }
  409.                     for (int i = startPositionX2; i < startPositionX2 + lenghtBlock; i++)
  410.                     {
  411.                         Pole[startPositionY2][i] = 1;
  412.                     }
  413.                     for (int i = 0; i < lenghtBlock; i++)
  414.                     {
  415.                         gotoxy(startPositionX + i, startPositionY);
  416.                         cout << "-";
  417.                     }
  418.                     for (int i = 0; i < lenghtBlock; i++)
  419.                     {
  420.                         gotoxy(startPositionX2 + i, startPositionY2);
  421.                         cout << "-";
  422.                     }
  423.                     goto end;
  424.                 }
  425.                 else if (randBlock == 4)
  426.                 {
  427.                     int startPositionX2 = startPositionX + 1;
  428.                     int startPositionY2 = startPositionY + 1;
  429.                     for (int i = 0; i < lenghtBlock; i++)
  430.                     {
  431.                         gotoxy(startPositionX, startPositionY + i);
  432.                         cout << "|";
  433.                         gotoxy(startPositionX2, startPositionY2 + i);
  434.                         cout << "|";
  435.                     }
  436.                     if (_kbhit())
  437.                     {
  438.                         auto key{ _getch() };
  439.                         if (key == 'a' or key == 'A') {
  440.                             if (startPositionX > minX and Pole[startPositionY][startPositionX - 1] != 1 and Pole[startPositionY + 1][startPositionX - 1] != 1 and Pole[startPositionY + 1][startPositionX - 1] != 1 and Pole[startPositionY + lenghtBlock][startPositionX] != 1 and Pole[startPositionY2 + lenghtBlock][startPositionX2] != 1 and Pole[startPositionY + 3][startPositionX] != 1 and Pole[startPositionY2 + 3][startPositionX2] != 1) {
  441.                                 for (int i = 0; i < lenghtBlock; i++)
  442.                                 {
  443.                                     gotoxy(startPositionX, startPositionY + i);
  444.                                     cout << " ";
  445.                                     gotoxy(startPositionX2, startPositionY2 + i);
  446.                                     cout << " ";
  447.                                 } startPositionX--; startPositionX2--;
  448.                                 if (startPositionX > minX and Pole[startPositionY][startPositionX - 1] != 1 and Pole[startPositionY + 1][startPositionX - 1] != 1 and Pole[startPositionY + 1][startPositionX - 1] != 1 and Pole[startPositionY + lenghtBlock][startPositionX] != 1 and Pole[startPositionY2 + lenghtBlock][startPositionX2] != 1 and Pole[startPositionY + 3][startPositionX] != 1 and Pole[startPositionY2 + 3][startPositionX2] != 1) {
  449.                                     for (int i = 0; i < lenghtBlock; i++)
  450.                                     {
  451.                                         gotoxy(startPositionX, startPositionY + i);
  452.                                         cout << " ";
  453.                                         gotoxy(startPositionX2, startPositionY2 + i);
  454.                                         cout << " ";
  455.                                     } startPositionX--; startPositionX2--;
  456.                                     if (startPositionX > minX and Pole[startPositionY][startPositionX - 1] != 1 and Pole[startPositionY + 1][startPositionX - 1] != 1 and Pole[startPositionY + 1][startPositionX - 1] != 1 and Pole[startPositionY + lenghtBlock][startPositionX] != 1 and Pole[startPositionY2 + lenghtBlock][startPositionX2] != 1 and Pole[startPositionY + 3][startPositionX] != 1 and Pole[startPositionY2 + 3][startPositionX2] != 1) {
  457.                                         for (int i = 0; i < lenghtBlock; i++)
  458.                                         {
  459.                                             gotoxy(startPositionX, startPositionY + i);
  460.                                             cout << " ";
  461.                                             gotoxy(startPositionX2, startPositionY2 + i);
  462.                                             cout << " ";
  463.                                         } startPositionX--; startPositionX2--;
  464.                                     }
  465.                                 } for (int i = 0; i < lenghtBlock; i++)
  466.                                 {
  467.                                     gotoxy(startPositionX, startPositionY + i);
  468.                                     cout << "|";
  469.                                     gotoxy(startPositionX2, startPositionY2 + i);
  470.                                     cout << "|";
  471.                                 }
  472.                             };
  473.                         };
  474.                         if (key == 'd' or key == 'D') {
  475.                             if (startPositionX2 < maxX and Pole[startPositionY2][startPositionX2 + 1] != 1 and Pole[startPositionY2 + 1][startPositionX2 + 1] != 1 and Pole[startPositionY2 + 2][startPositionX2 + 1] != 1 and Pole[startPositionY + lenghtBlock][startPositionX] != 1 and Pole[startPositionY2 + lenghtBlock][startPositionX2] != 1) {
  476.                                 for (int i = 0; i < lenghtBlock; i++)
  477.                                 {
  478.                                     gotoxy(startPositionX, startPositionY + i);
  479.                                     cout << " ";
  480.                                     gotoxy(startPositionX2, startPositionY2 + i);
  481.                                     cout << " ";
  482.                                 } startPositionX++; startPositionX2++;
  483.                                 if (startPositionX2 < maxX and Pole[startPositionY2][startPositionX2 + 1] != 1 and Pole[startPositionY2 + 1][startPositionX2 + 1] != 1 and Pole[startPositionY2 + 2][startPositionX2 + 1] != 1 and Pole[startPositionY + lenghtBlock][startPositionX] != 1 and Pole[startPositionY2 + lenghtBlock][startPositionX2] != 1) {
  484.                                     for (int i = 0; i < lenghtBlock; i++)
  485.                                     {
  486.                                         gotoxy(startPositionX, startPositionY + i);
  487.                                         cout << " ";
  488.                                         gotoxy(startPositionX2, startPositionY2 + i);
  489.                                         cout << " ";
  490.                                     } startPositionX++; startPositionX2++;
  491.                                     if (startPositionX2 < maxX and Pole[startPositionY2][startPositionX2 + 1] != 1 and Pole[startPositionY2 + 1][startPositionX2 + 1] != 1 and Pole[startPositionY2 + 2][startPositionX2 + 1] != 1 and Pole[startPositionY + lenghtBlock][startPositionX] != 1 and Pole[startPositionY2 + lenghtBlock][startPositionX2] != 1) {
  492.                                         for (int i = 0; i < lenghtBlock; i++)
  493.                                         {
  494.                                             gotoxy(startPositionX, startPositionY + i);
  495.                                             cout << " ";
  496.                                             gotoxy(startPositionX2, startPositionY2 + i);
  497.                                             cout << " ";
  498.                                         } startPositionX++; startPositionX2++;
  499.                                     }
  500.                                 } for (int i = 0; i < lenghtBlock; i++)
  501.                                 {
  502.                                     gotoxy(startPositionX, startPositionY + i);
  503.                                     cout << "|";
  504.                                     gotoxy(startPositionX2, startPositionY2 + i);
  505.                                     cout << "|";
  506.                                 }
  507.                             };
  508.                         };
  509.                     } //Control game
  510.                     Sleep(300);
  511.                     int previousX = startPositionX;
  512.                     int previousY = startPositionY;
  513.                     int previousX2 = startPositionX2;
  514.                     int previousY2 = startPositionY2;
  515.  
  516.                     startPositionY++;
  517.                     startPositionY2++;
  518.  
  519.                     for (int i = 0; i < lenghtBlock; i++)
  520.                     {
  521.                         gotoxy(previousX, previousY + i);
  522.                         cout << " ";
  523.                         gotoxy(previousX2, previousY2 + i);
  524.                         cout << " ";
  525.                     }
  526.                     if (startPositionY + lenghtBlock == maxY or startPositionY2 + lenghtBlock == maxY)
  527.                     {
  528.                         for (int i = startPositionY; i < startPositionY + lenghtBlock; i++)
  529.                         {
  530.                             Pole[i][startPositionX] = 1;
  531.                         }
  532.                         for (int i = startPositionY2; i < startPositionY2 + lenghtBlock; i++)
  533.                         {
  534.                             Pole[i][startPositionX2] = 1;
  535.                         }
  536.                         for (int i = 0; i < lenghtBlock; i++)
  537.                         {
  538.                             gotoxy(startPositionX, startPositionY + i);
  539.                             cout << "|";
  540.                             gotoxy(startPositionX2, startPositionY2 + i);
  541.                             cout << "|";
  542.                         }
  543.                         goto end;
  544.                     }
  545.                     else if (((Pole[startPositionY + lenghtBlock][startPositionX] == 1) or (Pole[startPositionY2 + lenghtBlock][startPositionX2] == 1)))
  546.                     {
  547.                         for (int i = startPositionY; i < startPositionY + lenghtBlock; i++)
  548.                         {
  549.                             Pole[i][startPositionX] = 1;
  550.                         }
  551.                         for (int i = startPositionY2; i < startPositionY2 + lenghtBlock; i++)
  552.                         {
  553.                             Pole[i][startPositionX2] = 1;
  554.                         }
  555.                         for (int i = 0; i < lenghtBlock; i++)
  556.                         {
  557.                             gotoxy(startPositionX, startPositionY + i);
  558.                             cout << "|";
  559.                             gotoxy(startPositionX2, startPositionY2 + i);
  560.                             cout << "|";
  561.                         }
  562.                         goto end;
  563.  
  564.  
  565.                     }
  566.  
  567.                 }
  568.             };
  569.         end:;
  570.         }
  571.     }
  572. }
  573. void main()
  574. {
  575.     tetris();
  576. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement