Advertisement
Guest User

Untitled

a guest
Nov 14th, 2019
124
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 7.71 KB | None | 0 0
  1. #include <iostream>
  2. #include <cstdlib>
  3. #include <ctime>
  4. #include <chrono>
  5. #include <thread>
  6. #include <stdlib.h>
  7.  
  8. using namespace std;
  9.  
  10. int IleJednakowychKomorek(bool** tablica, bool** tablica2, int wymiarY, int wymiarX)
  11. {
  12.     int wynik = 0;
  13.     for (int y = 0; y < wymiarY; y++)
  14.     {
  15.         for (int x = 0; x < wymiarX; x++)
  16.         {
  17.             if (tablica[y][x] == tablica2[y][x])
  18.             {
  19.                 wynik++;
  20.             }
  21.         }
  22.     }
  23.     return wynik;
  24. }
  25.  
  26.  
  27. void tabelka(int wymiarY, int wymiarX)
  28. {
  29.     cout << char(195);
  30.     for (int x = 0; x < wymiarX; x++)
  31.     {
  32.         for (int y = 0; y < 3; y++)
  33.         {
  34.             cout << char(196);
  35.         }
  36.         if (x == wymiarX - 1)
  37.         {
  38.             cout << char(180);
  39.         }
  40.         else
  41.         {
  42.             cout << char(197);
  43.         }
  44.     }
  45. }
  46. void tabelkaKoniec(int wymiarY, int wymiarX)
  47. {
  48.     cout << char(192);
  49.     for (int x = 0; x < wymiarX; x++)
  50.     {
  51.         for (int y = 0; y < 3; y++)
  52.         {
  53.             cout << char(196);
  54.         }
  55.         if (x == wymiarX - 1)
  56.         {
  57.             cout << char(217);
  58.         }
  59.         else
  60.         {
  61.             cout << char(193);
  62.         }
  63.     }
  64. }
  65.  
  66. void tabelkaGora(int wymiarY, int wymiarX)
  67. {
  68.     cout << char(218);
  69.     for (int x = 0; x < wymiarX; x++)
  70.     {
  71.         for (int y = 0; y < 3; y++)
  72.         {
  73.             cout << char(196);
  74.         }
  75.         if (x == wymiarX - 1)
  76.         {
  77.             cout << char(191);
  78.         }
  79.         else
  80.         {
  81.             cout << char(194);
  82.         }
  83.     }
  84. }
  85.  
  86.  
  87. void wypiszTablice(bool** tablica, int wymiarY, int wymiarX)
  88. {
  89.     tabelkaGora(wymiarY, wymiarX);
  90.     cout << endl;
  91.     for (int y = 0; y < wymiarY; y++)
  92.     {
  93.         cout << char(179);
  94.         for (int x = 0; x < wymiarX; x++)
  95.         {
  96.             if (x == 0)
  97.             {
  98.                 if (tablica[y][x] == 1)
  99.                 {
  100.                     cout << " " << char(254) << " " << char(179) << " ";
  101.                 }
  102.                 else
  103.                 {
  104.                     cout << " " << " " << " " << char(179) << " ";
  105.  
  106.                 }
  107.             }
  108.             else
  109.             {
  110.                 if (tablica[y][x] == 1)
  111.                 {
  112.                     cout << char(254) << " " << char(179) << " ";
  113.                 }
  114.                 else
  115.                 {
  116.                     cout << " " << " " << char(179) << " ";
  117.  
  118.                 }
  119.             }
  120.         }
  121.         cout << endl;
  122.         if (y == wymiarY - 1)
  123.         {
  124.             tabelkaKoniec(wymiarY, wymiarX);
  125.         }
  126.         else
  127.         {
  128.             tabelka(wymiarY, wymiarX);
  129.         }
  130.         cout << endl;
  131.     }
  132. }
  133. int SprawdzSasiadow(bool** tablica, int y, int x, int wymiarY, int wymiarX)
  134. {
  135.     int Wynik = 0;
  136.     if (y == 0)
  137.     {
  138.         if (x == 0)
  139.         {
  140.             if (tablica[wymiarY - 1][wymiarX - 1] == 1)
  141.                 Wynik++;
  142.             if (tablica[wymiarY - 1][0] == 1)
  143.                 Wynik++;
  144.             if (tablica[0][wymiarY - 1] == 1)
  145.                 Wynik++;
  146.             if (tablica[wymiarY - 1][x + 1] == 1)
  147.                 Wynik++;
  148.             if (tablica[y + 1][wymiarX - 1] == 1)
  149.                 Wynik++;
  150.             if (tablica[y + 1][x] == 1)
  151.                 Wynik++;
  152.             if (tablica[y + 1][x + 1] == 1)
  153.                 Wynik++;
  154.             if (tablica[y][x + 1] == 1)
  155.                 Wynik++;
  156.         }
  157.         else if (x == wymiarX - 1)
  158.         {
  159.             if (tablica[0][0] == 1)
  160.                 Wynik++;
  161.             if (tablica[0][wymiarX - 1] == 1)
  162.                 Wynik++;
  163.             if (tablica[wymiarY - 1][wymiarX - 1] == 1)
  164.                 Wynik++;
  165.             if (tablica[wymiarY - 1][x - 1] == 1)
  166.                 Wynik++;
  167.             if (tablica[0][x + 1] == 1)
  168.                 Wynik++;
  169.             if (tablica[y + 1][x] == 1)
  170.                 Wynik++;
  171.             if (tablica[y + 1][x - 1] == 1)
  172.                 Wynik++;
  173.             if (tablica[y][x - 1] == 1)
  174.                 Wynik++;
  175.         }
  176.         else
  177.         {
  178.             if (tablica[wymiarY - 1][x] == 1)
  179.                 Wynik++;
  180.             if (tablica[wymiarY - 1][x - 1] == 1)
  181.                 Wynik++;
  182.             if (tablica[wymiarY - 1][x + 1] == 1)
  183.                 Wynik++;
  184.             if (tablica[y][x - 1] == 1)
  185.                 Wynik++;
  186.             if (tablica[y + 1][x - 1] == 1)
  187.                 Wynik++;
  188.             if (tablica[y + 1][x] == 1)
  189.                 Wynik++;
  190.             if (tablica[y + 1][x + 1] == 1)
  191.                 Wynik++;
  192.             if (tablica[y][x + 1] == 1)
  193.                 Wynik++;
  194.         }
  195.     }
  196.     else if (y == wymiarY - 1)
  197.     {
  198.         if (x == 0)
  199.         {
  200.             if (tablica[0][wymiarX - 1] == 1)
  201.                 Wynik++;
  202.             if (tablica[0][0] == 1)
  203.                 Wynik++;
  204.             if (tablica[wymiarY - 1][wymiarX - 1] == 1)
  205.                 Wynik++;
  206.             if (tablica[y - 1][wymiarX - 1] == 1)
  207.                 Wynik++;
  208.             if (tablica[0][wymiarX + 1] == 1)
  209.                 Wynik++;
  210.             if (tablica[y - 1][x] == 1)
  211.                 Wynik++;
  212.             if (tablica[y - 1][x + 1] == 1)
  213.                 Wynik++;
  214.             if (tablica[y][x + 1] == 1)
  215.                 Wynik++;
  216.         }
  217.         else if (x == wymiarX - 1)
  218.         {
  219.             if (tablica[0][0] == 1)
  220.                 Wynik++;
  221.             if (tablica[wymiarY - 1][0] == 1)
  222.                 Wynik++;
  223.             if (tablica[0][wymiarX - 1] == 1)
  224.                 Wynik++;
  225.             if (tablica[y - 1][0] == 1)
  226.                 Wynik++;
  227.             if (tablica[0][x - 1] == 1)
  228.                 Wynik++;
  229.             if (tablica[y][x - 1] == 1)
  230.                 Wynik++;
  231.             if (tablica[y - 1][x - 1] == 1)
  232.                 Wynik++;
  233.             if (tablica[y - 1][x] == 1)
  234.                 Wynik++;
  235.         }
  236.         else
  237.         {
  238.             if (tablica[y][x - 1] == 1)
  239.                 Wynik++;
  240.             if (tablica[y - 1][x - 1] == 1)
  241.                 Wynik++;
  242.             if (tablica[y - 1][x] == 1)
  243.                 Wynik++;
  244.             if (tablica[y - 1][x + 1] == 1)
  245.                 Wynik++;
  246.             if (tablica[y][x + 1] == 1)
  247.                 Wynik++;
  248.             if (tablica[0][x] == 1)
  249.                 Wynik++;
  250.             if (tablica[0][x - 1] == 1)
  251.                 Wynik++;
  252.             if (tablica[0][x + 1] == 1)
  253.                 Wynik++;
  254.         }
  255.     }
  256.     else
  257.     {
  258.         if (x == 0)
  259.         {
  260.             if (tablica[y - 1][wymiarX - 1] == 1)
  261.                 Wynik++;
  262.             if (tablica[y][wymiarX - 1] == 1)
  263.                 Wynik++;
  264.             if (tablica[y + 1][wymiarX - 1] == 1)
  265.                 Wynik++;
  266.             if (tablica[y + 1][x] == 1)
  267.                 Wynik++;
  268.             if (tablica[y + 1][x + 1] == 1)
  269.                 Wynik++;
  270.             if (tablica[y][x + 1] == 1)
  271.                 Wynik++;
  272.             if (tablica[y - 1][x + 1] == 1)
  273.                 Wynik++;
  274.             if (tablica[y - 1][x] == 1)
  275.                 Wynik++;
  276.         }
  277.         else if (x == wymiarX - 1)
  278.         {
  279.             if (tablica[y - 1][0] == 1)
  280.                 Wynik++;
  281.             if (tablica[y][0] == 1)
  282.                 Wynik++;
  283.             if (tablica[y + 1][0] == 1)
  284.                 Wynik++;
  285.             if (tablica[y + 1][x] == 1)
  286.                 Wynik++;
  287.             if (tablica[y + 1][x - 1] == 1)
  288.                 Wynik++;
  289.             if (tablica[y][x - 1] == 1)
  290.                 Wynik++;
  291.             if (tablica[y - 1][x - 1] == 1)
  292.                 Wynik++;
  293.             if (tablica[y - 1][x] == 1)
  294.                 Wynik++;
  295.         }
  296.         else
  297.         {
  298.             if (tablica[y - 1][x - 1] == 1)
  299.                 Wynik++;
  300.             if (tablica[y - 1][x] == 1)
  301.                 Wynik++;
  302.             if (tablica[y - 1][x + 1] == 1)
  303.                 Wynik++;
  304.             if (tablica[y][x - 1] == 1)
  305.                 Wynik++;
  306.             if (tablica[y][x + 1] == 1)
  307.                 Wynik++;
  308.             if (tablica[y + 1][x + 1] == 1)
  309.                 Wynik++;
  310.             if (tablica[y + 1][x - 1] == 1)
  311.                 Wynik++;
  312.             if (tablica[y + 1][x] == 1)
  313.                 Wynik++;
  314.         }
  315.  
  316.  
  317.     }
  318.  
  319.     return Wynik;
  320. }
  321.  
  322. void wpisanieWartosci(bool** tablica, bool** tablica2, int wymiarY, int wymiarX)
  323. {
  324.     for (int y = 0; y < wymiarY; y++)
  325.     {
  326.         for (int x = 0; x < wymiarX; x++)
  327.         {
  328.             if (tablica[y][x] == 0)
  329.             {
  330.                 if (SprawdzSasiadow(tablica, y, x, wymiarY, wymiarX) == 3)
  331.                 {
  332.                     tablica2[y][x] = 1;
  333.                 }
  334.                 else
  335.                 {
  336.                     tablica2[y][x] = 0;
  337.                 }
  338.             }
  339.             else
  340.             {
  341.                 if (SprawdzSasiadow(tablica, y, x, wymiarY, wymiarX) == 2 || SprawdzSasiadow(tablica, y, x, wymiarY, wymiarX) == 3)
  342.                 {
  343.                     tablica2[y][x] = 1;
  344.                 }
  345.                 else
  346.                 {
  347.                     tablica2[y][x] = 0;
  348.                 }
  349.             }
  350.         }
  351.     }
  352. }
  353.  
  354. int main()
  355. {
  356.  
  357.     using namespace std::this_thread;
  358.     using namespace std::chrono_literals;
  359.     using std::chrono::system_clock;
  360.     int wymiarY = 13;  // wymiar tablicy pionowy
  361.     int wymiarX = 10; // wymiar tablicy poziomy
  362.     srand(time(NULL));
  363.  
  364.     //deklaracja tablic, wypelnienie
  365.     bool** tablica = new bool* [wymiarY];
  366.     for (int y = 0; y < wymiarY; y++)
  367.     {
  368.         tablica[y] = new bool[wymiarX];
  369.         for (int x = 0; x < wymiarX; x++)
  370.         {
  371.             tablica[y][x] = rand() % 2;
  372.         }
  373.     }
  374.  
  375.     bool** tablica2 = new bool* [wymiarY];
  376.     for (int y = 0; y < wymiarY; y++)
  377.     {
  378.         tablica2[y] = new bool[wymiarX];
  379.     }
  380.  
  381.  
  382.     //wyrzucenie wartosci
  383.     for (int y = 0; y >= 0; y++)
  384.     {
  385.         if (IleJednakowychKomorek(tablica, tablica2, wymiarY, wymiarX) == wymiarY * wymiarX)
  386.         {
  387.             wypiszTablice(tablica, wymiarY, wymiarX);
  388.             cout << endl;
  389.             cout << "Komorki w tablicach zrownaly sie/sa stale.";
  390.             cout << endl;
  391.             system("pause");
  392.         }
  393.         else
  394.         {
  395.             wpisanieWartosci(tablica, tablica2, wymiarY, wymiarX);
  396.             wypiszTablice(tablica2, wymiarY, wymiarX);
  397.             sleep_for(1000ms);
  398.             system("cls");
  399.             wpisanieWartosci(tablica2, tablica, wymiarY, wymiarX);
  400.             wypiszTablice(tablica, wymiarY, wymiarX);
  401.             sleep_for(1000ms);
  402.             system("cls");
  403.         }
  404.     }
  405.  
  406.     return 0;
  407. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement