Facebook
From Ungracious Hog, 7 Years ago, written in Plain Text.
Embed
Download Paste or View Raw
Hits: 235
  1. #include <iostream>
  2. #include <fstream>
  3. #include <string>
  4.  
  5. using namespace std;
  6.  
  7. int main()
  8. {
  9.  
  10.         //int kolumny;
  11.         //int wiersze;
  12.  
  13.         /*
  14.         cout << "podaj ilosc kolumn: " << endl;
  15.         cin >> kolumny;
  16.         cout << "podaj ilosc wierszy: " << endl;
  17.         cin >> wiersze;
  18.  
  19.         string ** plansza = new string *[wiersze];
  20.         for (int i = 0; i < wiersze; i++)
  21.         {
  22.                 plansza[i] = new string[kolumny];
  23.         }
  24.         */
  25.  
  26.         //iloœæ wierszy: 12
  27.         //iloœæ kolumn: 20
  28.         /*
  29.         ....................
  30.         ....................
  31.         ....................
  32.         ....................
  33.         .......X.XX.........
  34.         .......XXX..........
  35.         ........X...........
  36.         ....................
  37.         ....................
  38.         ....................
  39.         ....................
  40.         ....................
  41.         */
  42.         string plansza[12];
  43.  
  44.         ofstream a("plik.txt");
  45.         fstream plik;
  46.         plik.open("gra.txt");
  47.         for (int i = 0; i < 12; i++)
  48.         {
  49.                 plik >> plansza[i];
  50.                 //cout << plansza[i] << endl;
  51.         }
  52.         string pokolenieprzed[12];
  53.         string pokoleniepo[12][20];
  54.         for (int i = 0; i < 12; i++)
  55.         {
  56.                 pokolenieprzed[i]=plansza[i];
  57.                 //cout << pokolenieprzed[i] << endl;
  58.         }
  59.  
  60.         for (int i = 0; i < 37; i++)
  61.         {
  62.  
  63.                 cout << "Pokolenie " << i + 1 << ":" << endl;
  64.                 a<<"Pokolenie " << i + 1 << ":" << endl;
  65.                 for (int j = 0; j < 12; j++) {cout << pokolenieprzed[j]<<endl;
  66.                 a<<pokolenieprzed[j]<<endl;}
  67.                 for (int j = 0; j < 12; j++)
  68.                 {
  69.                         for (int k = 0; k < 20; k++)
  70.                         {
  71.                                         int licznikzyw = 0;
  72.                                         //PIONOWA
  73.                                         //góra
  74.                                         if (j - 1 < 0) { if (pokolenieprzed[11][k] == 'X') licznikzyw++; }
  75.                                         else { if (pokolenieprzed[j - 1][k] == 'X') licznikzyw++; }
  76.                                         //cout << licznikzyw << " ";
  77.                                         //dó³
  78.                                         if (j + 1 == 12) { if (pokolenieprzed[0][k] == 'X') licznikzyw++; }
  79.                                         else { if (pokolenieprzed[j + 1][k] == 'X') licznikzyw++; }
  80.                                         //cout << licznikzyw << " ";
  81.                                         //POZIOMA
  82.                                         //lewa
  83.                                         if (k - 1 < 0) { if (pokolenieprzed[j][19] == 'X') licznikzyw++; }
  84.                                         else { if (pokolenieprzed[j][k - 1] == 'X') licznikzyw++; }
  85.                                         //cout << licznikzyw << " ";
  86.                                         //prawa
  87.                                         if (k + 1 == 20) { if (pokolenieprzed[j][0] == 'X') licznikzyw++; }
  88.                                         else { if (pokolenieprzed[j][k + 1] == 'X') licznikzyw++; }
  89.                                         //cout << licznikzyw << " ";
  90.                                         //SKOSY
  91.  
  92.                                         //nie pokazuje wcześniejszych
  93.                                         //góra-lewa
  94.                                         if (j - 1 < 0 && k - 1 < 0) { if (pokolenieprzed[11][19] == 'X') licznikzyw++; }
  95.                                         if (j - 1 < 0 && k - 1 >= 0) { if (pokolenieprzed[11][k-1] == 'X') licznikzyw++; }
  96.                                         if (j - 1 >= 0 && k - 1 < 0) { if (pokolenieprzed[j-1][19] == 'X') licznikzyw++; }
  97.                                         if (j - 1 >= 0 && k - 1 >= 0) { if (pokolenieprzed[j-1][k-1] == 'X') licznikzyw++; }
  98.                                         //cout << licznikzyw << " ";
  99.                                         //góra-prawa
  100.                                         if (j - 1 < 0 && k + 1 == 20) { if (pokolenieprzed[11][0] == 'X') licznikzyw++; }
  101.                                         if (j - 1 < 0 && k + 1 < 20) { if (pokolenieprzed[11][k + 1] == 'X') licznikzyw++; }
  102.                                         if (j - 1 >= 0 && k + 1 == 20) { if (pokolenieprzed[j - 1][0] == 'X') licznikzyw++; }
  103.                                         if (j - 1 >= 0 && k + 1 < 20) { if (pokolenieprzed[j - 1][k + 1] == 'X') licznikzyw++; }
  104.                                         //cout << licznikzyw << " ";
  105.                                         //dó³-lewa
  106.                                         if (j + 1 == 12 && k - 1 < 0) { if (pokolenieprzed[0][19] == 'X') licznikzyw++; }
  107.                                         if (j + 1 == 12 && k - 1 >= 0) { if (pokolenieprzed[0][k - 1] == 'X') licznikzyw++; }
  108.                                         if (j + 1 < 12 && k - 1 < 0) { if (pokolenieprzed[j + 1][19] == 'X') licznikzyw++; }
  109.                                         if (j + 1 < 12 && k - 1 >= 0) { if (pokolenieprzed[j + 1][k - 1] == 'X') licznikzyw++; }
  110.                                         //cout << licznikzyw << " ";
  111.                                         //dó³-prawa
  112.                                         if (j + 1 == 12 && k + 1 == 20) { if (pokolenieprzed[0][0] == 'X') licznikzyw++; }
  113.                                         if (j + 1 == 12 && k + 1 < 20) { if (pokolenieprzed[0][k + 1] == 'X') licznikzyw++; }
  114.                                         if (j + 1 < 12 && k + 1 == 20) { if (pokolenieprzed[j + 1][0] == 'X') licznikzyw++; }
  115.                                         if (j + 1 < 12 && k + 1 < 20) { if (pokolenieprzed[j + 1][k + 1] == 'X') licznikzyw++; }
  116.                                         //cout << licznikzyw << " ";
  117.  
  118.                                         //PODSUMOWANIE
  119.                                         if (licznikzyw == 3) pokoleniepo[j][k] = 'X';
  120.                                         if (licznikzyw != 3 && licznikzyw != 2) pokoleniepo[j][k] = '.';
  121.                         }
  122.                 }
  123.                 for (int j = 0; j < 12; j++)
  124.                 {
  125.                         string linijka;
  126.                         for (int k = 0; k < 20; k++)
  127.                         {
  128.                                 linijka = linijka + pokoleniepo[j][k];
  129.                         }
  130.                         pokolenieprzed[j] = linijka;
  131.                 }
  132.         }
  133.  
  134.         return 0;
  135. }
  136.