Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // BML.cpp : Defines the entry point for the console application.
- //
- #include "stdafx.h"
- #include <iostream>
- #include <time.h>
- #include <Windows.h>
- #include <math.h>
- #include <cstdlib>
- using namespace std;
- int MatrixSize = 10;
- bool isChecked;
- int probability = 15; //w procentach
- class pojazd
- {
- public:
- int CarType; //1 - porusza sie w gore, 2 - porusza sie w prawo
- bool checked;
- pojazd()
- {
- this->checked = !isChecked;
- }
- void wyswietl()
- {
- if (CarType == 1)
- cout << "n";
- if (CarType == 2)
- cout << "e";
- }
- };
- /*
- void FillMatrix(int MatrixSize, int wsk) {
- srand(time(NULL));
- for (int i = 0; i < MatrixSize; i++) {
- for (int j = 0; j < MatrixSize; j++) {
- int x = rand() % 2 + 1;
- if (x == 1)
- {
- *Matrix[i][j] = new pojazd;
- }
- }
- }
- }
- */
- int main()
- {
- bool checkedE = FALSE;
- bool checkedN = FALSE;
- bool tick = FALSE;
- //generujemy tablice
- int **Matrix = new int *[MatrixSize];
- for (int i = 0; i < MatrixSize; i++)
- {
- Matrix[i] = new int[MatrixSize];
- }
- //generujemy tablice pomocnicza
- int **Matrix2 = new int *[MatrixSize];
- for (int i = 0; i < MatrixSize; i++)
- {
- Matrix2[i] = new int[MatrixSize];
- }
- //Wypelniamy glowna tablice zerami
- for (int i = 0; i < MatrixSize; i++) {
- for (int j = 0; j < MatrixSize; j++) {
- Matrix[i][j] = 0;
- }
- }
- //Wypelniamy macierz pomocnicza zerami
- for (int i = 0; i < MatrixSize; i++) {
- for (int j = 0; j < MatrixSize; j++) {
- Matrix2[i][j] = 0;
- }
- }
- int probability2 = floor(probability / 3);
- srand(time(NULL));
- int i2 = 1;
- int j2 = 1;
- int i3 = 2;
- int j3 = 2;
- for (int i = 0; i < MatrixSize; i++) {
- if (i2 == MatrixSize) i2 = 0;
- if (i3 == MatrixSize) i3 = 0;
- //cout << "i: " << i << " i2: " << i2 << " i3: " << i3 << endl;
- for (int j = 0; j < MatrixSize; j++) {
- if (j2 == MatrixSize) j2 = 0;
- if (j3 == MatrixSize) j3 = 0;
- int y = rand() % 100 + 1; //losujemy czy dane pole bedzie puste czy nie
- if (y < probability2) //Jesli w polu ma byc wygenerowany samochod
- {
- int x = rand() % 2 + 1; //losowanie jaki pojazd zostanie przypisany
- if (x == 1) //Jesli 1 to samochod przesuwa sie w gore, jesli 2 to w prawo
- {
- if (Matrix[i][j] == 0 && Matrix[i2][j] == 0 && Matrix[i3][j] == 0)
- {
- Matrix[i][j] = 11;
- Matrix[i2][j] = 1;
- Matrix[i3][j] = 1;
- }
- }
- if (x == 2) //Jesli x=2 to samochod przesuwa sie w prawo
- {
- if (Matrix[i][j] == 0 && Matrix[i][j2] == 0 && Matrix[i][j3] == 0)
- {
- Matrix[i][j] = 2;
- Matrix[i][j2] = 2;
- Matrix[i][j3] = 22;
- }
- }
- }
- //else
- //{
- // Matrix[i][j] = 0; //Puste pole
- //}
- j2++; j3++;
- }
- i2++; i3++;
- }
- while (1)
- {
- //Wyswietlanie Samochodow
- system("cls");
- for (int i = 0; i < MatrixSize-1; i++) {
- for (int j = 0; j < MatrixSize; j++) {
- if (Matrix[i][j] == 0)
- {
- cout << ". "; //Puste pole
- }
- else if (Matrix[i][j] == 1 || Matrix[i][j] == 11)
- {
- cout << "N "; //Samochod poruszajacy sie w gore
- }
- else if (Matrix[i][j] == 2 || Matrix[i][j] == 22)
- {
- cout << "E "; //Samochod poruszajacy sie w prawo
- }
- }
- cout << endl;
- }
- //Przesuwanie pojazdow
- if (tick == FALSE) //W tym przypadku ruszaja sie samochody idace w prawo
- {
- for (int i = MatrixSize - 1; i > -1; i--) {
- for (int j = MatrixSize - 1; j > -1; j--) {
- int k = j + 1;
- if (k == MatrixSize) k = 0;
- if (Matrix[i][j] == 22)
- {
- if (Matrix[i][k] == 0)
- {
- Matrix2[i][k] = 22;
- }
- else
- {
- Matrix2[i][j] = 22;
- }
- }
- }
- }
- }
- if (tick == TRUE) //Tutaj przesuwaja sie samochodu poruszajace sie w gore
- {
- for (int i = 0; i < MatrixSize; i++) {
- for (int j = 0; j < MatrixSize; j++) {
- int k = i - 1;
- if (k < 0) k = MatrixSize - 1;
- if (Matrix[i][j] == 11)
- {
- if (Matrix[k][j] == 0)
- {
- Matrix2[k][j] = 11;
- }
- else
- {
- Matrix2[i][j] = 11;
- }
- }
- }
- }
- }
- tick = !tick;
- //tick = !tick; //Zmieniamy rodzaj samochodow, ktore beda przesuwane w nastepnej iteracji
- //Test wyswietlania
- cout << endl;
- for (int i = 0; i < MatrixSize - 1; i++) {
- for (int j = 0; j < MatrixSize; j++) {
- if (Matrix2[i][j] == 0)
- {
- cout << ". "; //Puste pole
- }
- else if (Matrix2[i][j] == 1 || Matrix[i][j] == 11)
- {
- cout << "N "; //Samochod poruszajacy sie w gore
- }
- else if (Matrix2[i][j] == 2 || Matrix[i][j] == 22)
- {
- cout << "E "; //Samochod poruszajacy sie w prawo
- }
- }
- cout << endl;
- }
- Sleep(20000);
- for (int i = 0; i < MatrixSize; i++) {
- for (int j = 0; j < MatrixSize; j++) {
- Matrix[i][j] = Matrix2[i][j];
- }
- }
- //Zerujemy macierz pomocnicza
- for (int i = 0; i < MatrixSize; i++) {
- for (int j = 0; j < MatrixSize; j++) {
- Matrix2[i][j] = 0;
- }
- }
- Sleep(1200);
- }
- system("PAUSE");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement