Advertisement
EnsarMeskovic

[PRII] Igra MIG

Jun 1st, 2016
255
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.69 KB | None | 0 0
  1. #include <iostream>
  2. #include <iomanip>
  3. #include <cstdlib>
  4. #include <ctime>
  5. using namespace std;
  6.  
  7. struct oblik {
  8.     int Y;
  9.     int vrijeme;
  10.     void target(char **&tabla)
  11.     {
  12.         srand(time(0));
  13.         Y = rand()%18+1;
  14.         vrijeme = rand()%10+5;
  15.         tabla[1][Y] = 'O';
  16.     }
  17. };
  18. void Tabla(char **&tabla, int max)
  19. {
  20.     tabla = new char*[max];
  21.     for (int i = 0; i < max; i++)
  22.         tabla[i] = new char[max];
  23.     for(int i = 0; i < max; i++)
  24.         for(int j = 0; j < max; j++)
  25.         {
  26.             tabla[i][j] = ' ';
  27.             tabla[i][0] = '*';
  28.             tabla[0][i] = '*';
  29.             tabla[max-1][j] = '*';
  30.             tabla[i][max-1] = '*';
  31.         }
  32. }
  33. void MIG(char **&tabla,int max, int Y)
  34. {
  35.     tabla[max-2][Y] = '^';
  36. }
  37. void metci(char **&tabla, int max, int Y)
  38. {
  39.     for (int i = 2; i < max-2; i++) {
  40.         tabla[i][Y] = '|';
  41.     }
  42. }
  43. void pokupiCahure(char **&tabla, int max, int Y)
  44. {
  45.     for (int i = 2; i < max-2; i++)
  46.         tabla[i][Y] = ' ';
  47. }
  48. void ispis(char **tabla, int max, int &bodovi, int &zivot)
  49. {
  50.     cout << "ZIVOT : " << zivot << endl;
  51.     cout << "SCORE : " << bodovi << endl << endl;
  52.     for (int i = 0; i < max; i++) {
  53.         for (int j = 0; j < max; j++)
  54.             cout << setw(2) << tabla[i][j];
  55.         cout << endl;
  56.     }
  57. }
  58. void dealloc(char **&tabla, int max)
  59. {
  60.     for (int i = 0; i < max; i++)
  61.         delete[] tabla[i];
  62.     delete[] tabla;
  63.     tabla = nullptr;
  64. }
  65. void main()
  66. {
  67.     int vel = 30, bodovi = 0, zivot = 4;
  68.     oblik *meta = new oblik;
  69.     bool game = true, pogodak;
  70.     int Y = vel/2;
  71.     char **tabla = nullptr;
  72.     char komanda;
  73.     do
  74.     {
  75.         pogodak = false;
  76.         Tabla(tabla, vel);
  77.         meta->target(tabla);
  78.         do {
  79.             system("cls");
  80.             MIG(tabla, vel, Y);
  81.             ispis(tabla, vel, bodovi, zivot);
  82.             cout << "\n\n    P\n";
  83.             cout << "A  <->  D\n" << endl << endl;
  84.             cout << "Komanda : ";
  85.             cin >> komanda;
  86.             cin.ignore();
  87.             komanda = toupper(komanda);
  88.             switch (komanda) {
  89.             case 'A':
  90.             {
  91.                 tabla[vel-2][Y] = ' ';
  92.                 Y--;
  93.                 if (Y == 0)
  94.                     Y++;
  95.                 meta->vrijeme--;
  96.             } break;
  97.             case 'D':
  98.             {
  99.                 tabla[vel-2][Y] = ' ';
  100.                 Y++;
  101.                 if (Y == vel-1)
  102.                     Y--;
  103.                 meta->vrijeme--;
  104.             } break;
  105.             case 'P':
  106.             {
  107.                 metci(tabla, vel, Y);
  108.                 system("cls");
  109.                 ispis(tabla, vel, bodovi, zivot);
  110.                 system("pause>0");
  111.                 pokupiCahure(tabla, vel, Y);
  112.                 if (meta->Y == Y) {
  113.                     pogodak = true;
  114.                     bodovi++;
  115.                     meta->vrijeme = 0;
  116.                 } else
  117.                     meta->vrijeme -= 2;
  118.             } break;
  119.             }
  120.         } while (meta->vrijeme > 0);
  121.         dealloc(tabla, vel);
  122.         if (!pogodak)
  123.             zivot--;
  124.         if(pogodak && bodovi % 3 == 0)
  125.             zivot++;
  126.         if (zivot == 0) {
  127.             game = false;
  128.             system("cls");
  129.             cout << "\tGAME OVER!\n\tSCORE : " << bodovi << endl;
  130.             system("pause>0");
  131.         }
  132.     } while (game);
  133.     //dealokacija mete
  134.     delete meta;
  135.     meta = nullptr;
  136.     system("pause>0");
  137. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement