Advertisement
EnsarMeskovic

[PRII] IgraKOCKA doublepoint

May 29th, 2016
555
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.81 KB | None | 0 0
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. struct Kocka {
  5.     int X, Y;
  6.     int vel;
  7. };
  8. void inicijalizacija(char **&tabla, int vel) {
  9.     for (int i = 0; i < vel; i++)
  10.         for (int j = 0; j < vel; j++) {
  11.             tabla[i][j] = '.';
  12.             tabla[0][i] = '*';
  13.             tabla[i][0] = '*';
  14.             tabla[vel-1][j] = '*';
  15.             tabla[i][vel-1] = '*';
  16.         }
  17. }
  18. void create(char **&tabla, int vel) {
  19.     tabla = new char*[vel];
  20.     for (int i = 0; i < vel; i++)
  21.         tabla[i] = new char[vel];
  22.     inicijalizacija(*&tabla, vel);
  23. }
  24. void doublepoint(char **&tabla, int x, int y, int v) {
  25.     char **pok = new char*[v];
  26.     for (int i = 0; i < v; i++)
  27.         pok[i] = new char[v];
  28.     for(int i = 0; i < v; i++)
  29.         for (int j = 0; j < v; j++) {
  30.             pok[i][j] = tabla[x+i][y+j];
  31.             tabla[x+i][y+j] = 'X';
  32.     }
  33. }
  34. void ispis(char **&tabla, int vel) {
  35.     for (int i = 0; i < vel; i++) {
  36.         for (int j = 0; j < vel; j++) {
  37.             if (tabla[i][j] == '.')
  38.                 cout << " ";
  39.             else
  40.                 cout << tabla[i][j];
  41.         }
  42.         cout <<endl;
  43.     }
  44. }
  45. void dealloc(char **&tabla, int vel) {
  46.     for (int i = 0; i < vel; i++) {
  47.         delete[]tabla[i];
  48.         tabla[i] = nullptr;
  49.     }
  50.     delete[]tabla;
  51.     tabla = nullptr;
  52. }
  53. void main() {
  54.     int velicina = 20, dodir = 3;
  55.     char **tabla = nullptr;
  56.     Kocka kocka;
  57.     kocka.X = 8;
  58.     kocka.Y = 8;
  59.     kocka.vel = 2;
  60.     bool promjena = false, igra = true;
  61.     char komanda;
  62.     do {
  63.         cout << "Preostalo zivota : " <<dodir<< endl << endl;
  64.         create(*&tabla, velicina);
  65.         doublepoint(*&tabla, kocka.X, kocka.Y, kocka.vel);
  66.         ispis(tabla, velicina);
  67.         int okvir = velicina - kocka.vel;
  68.         cout << "\n  W\nA   D\n  S\n\n+ <- Povecaj kocku\n- <- Smanji kocku\n" << endl;
  69.         cout << "Komanda : ";
  70.         cin >> komanda;
  71.         komanda = toupper(komanda);
  72.         switch (komanda) {
  73.         case 'S':{
  74.             kocka.X++;
  75.             if (kocka.X == okvir) {
  76.                 kocka.X--;
  77.                 dodir--;
  78.             }
  79.         } break;
  80.         case 'D' :{
  81.             kocka.Y++;
  82.             if (kocka.Y == okvir) {
  83.                 kocka.Y--;
  84.                 dodir--;
  85.             }
  86.         } break;
  87.         case 'W': {
  88.             kocka.X--;
  89.             if (kocka.X == 0) {
  90.                 kocka.X++;
  91.                 dodir--;
  92.             }
  93.         } break;
  94.         case 'A': {
  95.             kocka.Y--;
  96.             if (kocka.Y == 0) {
  97.                 kocka.Y++;
  98.                 dodir--;
  99.             }
  100.         } break;
  101.         case '+':
  102.         {
  103.             kocka.vel++;
  104.             promjena = true;
  105.             velicina++;
  106.             if (kocka.vel > 5) {
  107.                 kocka.vel--;
  108.                 velicina--;
  109.                 promjena = false;
  110.                 cout << "\nNije moguce vise povecavati kocku!"<<endl;
  111.                 system("pause>0");
  112.             }
  113.         } break;
  114.         case '-':
  115.         {
  116.             kocka.vel--;
  117.             promjena = true;
  118.             velicina--;
  119.             if (kocka.vel < 1) {
  120.                 kocka.vel++;
  121.                 velicina++;
  122.                 promjena = false;
  123.                 cout << "Nije moguce vise smanjiti kocku!" <<endl;
  124.                 system("pause>0");
  125.             }
  126.         } break;
  127.         }
  128.         if (promjena == false)
  129.             dealloc(*&tabla, velicina);
  130.         else
  131.             dealloc(*&tabla, velicina-1);
  132.         if (dodir == 0)
  133.             igra = false;
  134.         system("cls");
  135.     } while (igra);
  136.  
  137.     cout << "\tKRAJ IGRE!";
  138.  
  139.     system("pause>0");
  140. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement