Advertisement
Guest User

Untitled

a guest
Jan 23rd, 2019
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 5.05 KB | None | 0 0
  1. // BML.cpp : Defines the entry point for the console application.
  2. //
  3.  
  4. #include "stdafx.h"
  5. #include <iostream>
  6. #include <time.h>
  7. #include <Windows.h>
  8. #include <math.h>
  9. #include <cstdlib>
  10. using namespace std;
  11. int MatrixSize = 10;
  12. bool isChecked;
  13. int probability = 15;   //w procentach
  14.  
  15. class pojazd
  16. {
  17. public:
  18.     int CarType;   //1 - porusza sie w gore, 2 - porusza sie w prawo
  19.     bool checked;
  20.     pojazd()
  21.     {
  22.         this->checked = !isChecked;
  23.     }
  24.    
  25.     void wyswietl()
  26.     {
  27.         if (CarType == 1)
  28.             cout << "n";
  29.         if (CarType == 2)
  30.             cout << "e";
  31.     }
  32. };
  33. /*
  34. void FillMatrix(int MatrixSize, int wsk) {
  35.     srand(time(NULL));
  36.     for (int i = 0; i < MatrixSize; i++) {
  37.         for (int j = 0; j < MatrixSize; j++) {
  38.             int x = rand() % 2 + 1;
  39.             if (x == 1)
  40.             {
  41.                 *Matrix[i][j] = new pojazd;
  42.             }
  43.         }
  44.     }
  45. }
  46. */
  47.  
  48. int main()
  49. {
  50.     bool checkedE = FALSE;
  51.     bool checkedN = FALSE;
  52.     bool tick = FALSE;
  53.     //generujemy tablice
  54.     int **Matrix = new int *[MatrixSize];
  55.     for (int i = 0; i < MatrixSize; i++)
  56.     {
  57.         Matrix[i] = new int[MatrixSize];
  58.     }
  59.    
  60.     //generujemy tablice pomocnicza
  61.     int **Matrix2 = new int *[MatrixSize];
  62.     for (int i = 0; i < MatrixSize; i++)
  63.     {
  64.         Matrix2[i] = new int[MatrixSize];
  65.     }
  66.    
  67.     //Wypelniamy glowna tablice zerami
  68.     for (int i = 0; i < MatrixSize; i++) {
  69.         for (int j = 0; j < MatrixSize; j++) {
  70.             Matrix[i][j] = 0;
  71.         }
  72.     }
  73.  
  74.     //Wypelniamy macierz pomocnicza zerami
  75.     for (int i = 0; i < MatrixSize; i++) {
  76.         for (int j = 0; j < MatrixSize; j++) {
  77.             Matrix2[i][j] = 0;
  78.         }
  79.     }
  80.  
  81.     int probability2 = floor(probability / 3);
  82.    
  83.     srand(time(NULL));
  84.     int i2 = 1;
  85.     int j2 = 1;
  86.     int i3 = 2;
  87.     int j3 = 2;
  88.     for (int i = 0; i < MatrixSize; i++) {
  89.         if (i2 == MatrixSize) i2 = 0;
  90.         if (i3 == MatrixSize) i3 = 0;
  91.         //cout << "i: " << i << " i2: " << i2 << " i3: " << i3 << endl;
  92.         for (int j = 0; j < MatrixSize; j++) {
  93.             if (j2 == MatrixSize) j2 = 0;
  94.             if (j3 == MatrixSize) j3 = 0;
  95.  
  96.  
  97.             int y = rand() % 100 + 1; //losujemy czy dane pole bedzie puste czy nie
  98.             if (y < probability2) //Jesli w polu ma byc wygenerowany samochod
  99.             {
  100.                
  101.                 int x = rand() % 2 + 1;   //losowanie jaki pojazd zostanie przypisany
  102.                 if (x == 1) //Jesli 1 to samochod przesuwa sie w gore, jesli 2 to w prawo
  103.                 {
  104.                     if (Matrix[i][j] == 0 && Matrix[i2][j] == 0 && Matrix[i3][j] == 0)
  105.                     {
  106.                         Matrix[i][j] = 11;  
  107.                         Matrix[i2][j] = 1;
  108.                         Matrix[i3][j] = 1;
  109.                     }
  110.                 }
  111.                 if (x == 2)  //Jesli x=2 to samochod przesuwa sie w prawo
  112.                 {
  113.                     if (Matrix[i][j] == 0 && Matrix[i][j2] == 0 && Matrix[i][j3] == 0)
  114.                     {
  115.                         Matrix[i][j] = 2;
  116.                         Matrix[i][j2] = 2;
  117.                         Matrix[i][j3] = 22;
  118.                     }
  119.                 }
  120.             }
  121.             //else
  122.             //{
  123.             //  Matrix[i][j] = 0;  //Puste pole
  124.             //}
  125.              j2++; j3++;
  126.         }
  127.         i2++; i3++;
  128.     }
  129.     while (1)
  130.     {
  131.         //Wyswietlanie Samochodow
  132.         system("cls");
  133.         for (int i = 0; i < MatrixSize-1; i++) {
  134.             for (int j = 0; j < MatrixSize; j++) {
  135.                 if (Matrix[i][j] == 0)
  136.                 {
  137.                     cout << ". "; //Puste pole
  138.                 }
  139.                 else if (Matrix[i][j] == 1 || Matrix[i][j] == 11)
  140.                 {
  141.                     cout << "N "; //Samochod poruszajacy sie w gore
  142.                 }
  143.                 else if (Matrix[i][j] == 2 || Matrix[i][j] == 22)
  144.                 {
  145.                     cout << "E "; //Samochod poruszajacy sie w prawo
  146.                 }
  147.             }
  148.             cout << endl;
  149.         }
  150.        
  151.        
  152.         //Przesuwanie pojazdow
  153.         if (tick == FALSE) //W tym przypadku ruszaja sie samochody idace w prawo
  154.         {
  155.             for (int i = MatrixSize - 1; i > -1; i--) {
  156.                 for (int j = MatrixSize - 1; j > -1; j--) {
  157.                     int k = j + 1;
  158.                     if (k == MatrixSize) k = 0;
  159.                     if (Matrix[i][j] == 22)
  160.                     {
  161.                         if (Matrix[i][k] == 0)
  162.                         {
  163.                             Matrix2[i][k] = 22;
  164.                         }
  165.                         else
  166.                         {
  167.                             Matrix2[i][j] = 22;
  168.                         }
  169.  
  170.                     }
  171.                 }
  172.             }
  173.         }
  174.  
  175.  
  176.         if (tick == TRUE)  //Tutaj przesuwaja sie samochodu poruszajace sie w gore
  177.         {
  178.             for (int i = 0; i < MatrixSize; i++) {
  179.                 for (int j = 0; j < MatrixSize; j++) {
  180.                     int k = i - 1;
  181.                     if (k < 0) k = MatrixSize - 1;
  182.                     if (Matrix[i][j] == 11)
  183.                     {
  184.                         if (Matrix[k][j] == 0)
  185.                         {
  186.                             Matrix2[k][j] = 11;
  187.                         }
  188.                         else
  189.                         {
  190.                             Matrix2[i][j] = 11;
  191.                         }
  192.                     }
  193.                 }
  194.             }
  195.         }
  196.                    
  197.         tick = !tick;
  198.         //tick = !tick; //Zmieniamy rodzaj samochodow, ktore beda przesuwane w nastepnej iteracji
  199.        
  200.         //Test wyswietlania
  201.         cout << endl;
  202.         for (int i = 0; i < MatrixSize - 1; i++) {
  203.             for (int j = 0; j < MatrixSize; j++) {
  204.                 if (Matrix2[i][j] == 0)
  205.                 {
  206.                     cout << ". "; //Puste pole
  207.                 }
  208.                 else if (Matrix2[i][j] == 1 || Matrix[i][j] == 11)
  209.                 {
  210.                     cout << "N "; //Samochod poruszajacy sie w gore
  211.                 }
  212.                 else if (Matrix2[i][j] == 2 || Matrix[i][j] == 22)
  213.                 {
  214.                     cout << "E "; //Samochod poruszajacy sie w prawo
  215.                 }
  216.             }
  217.             cout << endl;
  218.         }
  219.         Sleep(20000);
  220.        
  221.         for (int i = 0; i < MatrixSize; i++) {
  222.             for (int j = 0; j < MatrixSize; j++) {
  223.                 Matrix[i][j] = Matrix2[i][j];
  224.             }
  225.         }
  226.  
  227.         //Zerujemy macierz pomocnicza
  228.         for (int i = 0; i < MatrixSize; i++) {
  229.             for (int j = 0; j < MatrixSize; j++) {
  230.                 Matrix2[i][j] = 0;
  231.             }
  232.         }
  233.  
  234.        
  235.  
  236.         Sleep(1200);
  237.     }
  238.     system("PAUSE");
  239.     return 0;
  240. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement