Advertisement
TroubleMaker84

23.12

Dec 23rd, 2017
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 6.99 KB | None | 0 0
  1. #include <iostream>
  2. #include <Windows.h>
  3. #include <conio.h>
  4. #include <stdio.h>
  5. #include <time.h>
  6. #include <stdlib.h>
  7. #include <stdio.h>
  8.  
  9. #define LUNGIME 91
  10. #define LATIME 20
  11. #define SIMBOL_MARGINE1 '-'
  12. #define SIMBOL_MARGINE2 '|'
  13.  
  14. using namespace std;
  15.  
  16. struct Monstru{
  17.     int HP, poz;
  18.     char FORMA[7][7],LASER;
  19.  
  20. };
  21. Monstru M1, M2, M3, M4, R;
  22. char matTer[LATIME][LUNGIME];
  23. short int pozNava = 4;
  24. void m1 (){
  25.     matTer[M1.poz][88]=M1.FORMA[2][1];
  26.     matTer[M1.poz -1][89]=matTer[M1.poz ][89]=matTer[M1.poz + 1][89]=M1.FORMA[2][2];
  27.  
  28. }
  29. void m2(){
  30.     matTer[M2.poz][85]=matTer[M2.poz][86]=matTer[M2.poz][87]=M2.FORMA[1][1];
  31. }
  32. void m3(){
  33.     matTer[M3.poz][84]=matTer[M3.poz][85]=matTer[M3.poz - 1][85]=matTer[M3.poz -1 ][86]=matTer[M3.poz+1][85]=matTer[M3.poz+1][86]=M3.FORMA[2][1];
  34.  
  35.  
  36. }
  37. void m4()
  38. {
  39.     matTer[M4.poz -1][85]=M4.FORMA[1][2];
  40.     matTer[M4.poz][85]=matTer[M4.poz][88]=M4.FORMA[2][2];
  41.     matTer[M4.poz +1][85]=M4.FORMA[4][1];
  42.     matTer[M4.poz-1][84]=matTer[M4.poz +1][84]=M4.FORMA[1][1];
  43.     matTer[M4.poz -1 ][86]=matTer[M4.poz -1][87]=matTer[M4.poz +1][86]=matTer[M4.poz +1][87]=M4.FORMA[1][3];
  44.     matTer[M4.poz -1][88]=M4.FORMA[1][6];
  45.     matTer[M4.poz+1][88]=M4.FORMA[4][6];
  46. }
  47.  
  48. void r(){
  49.     matTer[R.poz][88]=R.FORMA[2][4];
  50.     matTer[R.poz-1][85]=matTer[R.poz-1][86]=matTer[R.poz-1][87]=R.FORMA[1][2];
  51.     matTer[R.poz][85]=matTer[R.poz][86]=matTer[R.poz ][87]=R.FORMA[1][2];
  52.     matTer[R.poz][84]=R.FORMA[2][1];
  53. }
  54.  
  55. void show_cursor(bool show){ //vizibilitate curosor in consola
  56.     HANDLE out = GetStdHandle(STD_OUTPUT_HANDLE);
  57.     CONSOLE_CURSOR_INFO infCursor;
  58.     GetConsoleCursorInfo(out, &infCursor);
  59.     infCursor.bVisible = show;
  60.     SetConsoleCursorInfo(out, &infCursor);
  61. }
  62.  
  63. int check (int x, int y)
  64.     {
  65.         int k=1,i,j;
  66.         for( i=1;i<=6 && k==1 ;i++)
  67.             for( j=1;j<=7 && k==1 ;j++)
  68.                 if (matTer[x][y]!=M1.FORMA[i][j])
  69.                     k=0;
  70.         if(k==1)
  71.             return 1;
  72.         else k=1;
  73.         for( i=1;i<=6 && k==1 ;i++)
  74.             for( j=1;j<=1 && k==1 ;j++)
  75.                 if (matTer[x][y]!=M2.FORMA[i][j])
  76.                     k=0;
  77.         if(k==1)
  78.             return 2;
  79.         else k=1;
  80.  
  81.         for( i=1;i<=6 && k==1 ;i++)
  82.             for(j=1;j<=7 && k==1 ;j++)
  83.                 if (matTer[x][y]!=M3.FORMA[i][j])
  84.                     k=0;
  85.         if(k==1)
  86.             return 3;
  87.         else k=1;
  88.  
  89.         for(i-1 ; i<=6 && k==1 ;i++)
  90.             for( j=1;j<=7 && k==1 ;j++)
  91.                 if (matTer[x][y]!=M4.FORMA[i][j])
  92.                     k=0;
  93.         if(k==1)
  94.             return 4;
  95.         else k=1;
  96.     }
  97.  
  98. void afisare(){
  99.     for (int i = 1; i <= LATIME - 1; i++){
  100.         for (int j = 1; j <= LUNGIME - 1; j++)
  101.             if(matTer[i][j] != '\0')
  102.  
  103.  
  104.                 cout << matTer[i][j];
  105.             else
  106.                 cout << ' ';
  107.         cout << endl;
  108.     }
  109. }
  110.  
  111. void creare_teren(){
  112.     int i;
  113.     for (i = 1; i <= LATIME - 1; i++)
  114.         matTer[i][1] = matTer[i][LUNGIME - 1] = SIMBOL_MARGINE2;
  115.     for (i = 1; i <= LUNGIME - 1; i++)
  116.         matTer[1][i] = matTer[LATIME - 1][i] = SIMBOL_MARGINE1;
  117. }
  118.  
  119. void nava(){
  120.     matTer[2][2] = matTer[3][2] = matTer[4][2] = matTer[3][3] = (char)219;
  121. }
  122.  
  123. void miscare(){
  124.     char newKey;
  125.     if (_kbhit())
  126.         newKey = getch();
  127.     if(newKey== (char)115)
  128.             if(pozNava<18){
  129.             matTer[pozNava + 1][2] = matTer[pozNava][2];
  130.             matTer[pozNava ][3] = matTer[pozNava-1][3];
  131.             matTer[pozNava - 2][2] = matTer[pozNava-1][3] = '\0';
  132.             pozNava++;
  133.             }
  134.  
  135.     if(newKey==(char)119)
  136.             if(pozNava>4){
  137.                 matTer[pozNava -3][2]=matTer[pozNava][2];
  138.                 matTer[pozNava-2][3]=matTer[pozNava-1][3];
  139.                 matTer[pozNava][2]=matTer[pozNava -1][3]='\0';
  140.                 pozNava--;
  141.                 }
  142.  
  143.     if(newKey==(char)32)
  144.             matTer[pozNava-1][4]=(char)248;
  145.     for(int i = 1; i <= LATIME-3 ; i++)
  146.         for(int j = 1 ; j<=LUNGIME-3; j++)
  147.                 if(matTer[i][j]==(char)248)
  148.                     {if(matTer[i][j+2]=='\0')
  149.                         {if(j < LUNGIME-3)
  150.                             {matTer[i][j+2]=(char)248;
  151.                             matTer[i][j]='\0';
  152.                             j=j+2;}}
  153.                         else
  154.                             if(check(i, j+2)==1)
  155.                                 M1.HP--;
  156.                             else
  157.                                 if(check(i,j+2)==2)
  158.                                     M2.HP--;
  159.                                 else
  160.                                     if(check(i,j+2)==3)
  161.                                         M3.HP--;
  162.                                     else
  163.                                         if(check(i,j+2)==4)
  164.                                             M4.HP--;
  165.                     matTer[i][j]='\0';}
  166.  
  167. }
  168.  
  169. int main (){
  170.     int x=1;
  171.     creare_teren();
  172.     show_cursor(false);
  173.     M1.HP=3; M2.HP=1; M3.HP=4; M4.HP=6;
  174.     M1.FORMA[2][1]=(char)174;
  175.     M1.FORMA[1][2]=M1.FORMA[2][2]=M1.FORMA[3][2]=(char)254;
  176.  
  177.     M2.FORMA[1][1]=M2.FORMA[1][2]=M2.FORMA[1][3]=char(178);
  178.  
  179.     M3.FORMA[2][1]=M3.FORMA[2][2]=M3.FORMA[1][2]=M3.FORMA[1][3]=M3.FORMA[3][2]=M3.FORMA[3][3]='O';
  180.  
  181.     R.FORMA[2][1]='<';
  182.     R.FORMA[1][2]=R.FORMA[1][3]=R.FORMA[2][2]=R.FORMA[2][3]='_';
  183.     R.FORMA[2][4]='|';
  184.  
  185.     M4.FORMA[1][1]=M4.FORMA[4][1]='-';
  186.     M4.FORMA[1][2]=char(201);
  187.     M4.FORMA[1][6]=char(187);
  188.     M4.FORMA[2][2]=M4.FORMA[3][2]=char(186);
  189.     M4.FORMA[1][3]=M4.FORMA[1][4]=M4.FORMA[1][5]=M4.FORMA[4][3]=M4.FORMA[4][4]=M4.FORMA[4][5]=char(205);
  190.     M4.FORMA[2][6]=M4.FORMA[3][6]=char(186);
  191.     M4.FORMA[4][1]=char(200);
  192.     M4.FORMA[4][6]=char(188);
  193.     M4.FORMA[3][2]= ' ';
  194.     srand(time(NULL));
  195.      do
  196.         M4.poz=rand() %  19  ;
  197.     while (M4.poz < 5 || M4.poz>16 );
  198.     m4();
  199.     do
  200.         M1.poz=rand() %  19  ;
  201.     while (M1.poz < 3 || matTer[M1.poz][88]!= '\0' || matTer[M1.poz][89]!='\0' || matTer[M1.poz-1][89]!= '\0' || matTer[M1.poz+1][89]!='\0');
  202.     m1();
  203.     do
  204.         M2.poz=rand() %  19  ;
  205.     while (M2.poz < 2 || matTer[M2.poz][85]!= '\0' || matTer[M2.poz][86]!= '\0' || matTer[M2.poz][87]!= '\0');
  206.     m2();
  207.     do
  208.         M3.poz=rand() % 19  ;
  209.     while (M3.poz < 3  || M3.poz> 18 || matTer[M3.poz][84]!= '\0' || matTer[M3.poz][85]!= '\0' || matTer[M3.poz-1][85]!= '\0' || matTer[M3.poz+1][85]!= '\0' || matTer[M3.poz-1][86]!='\0' || matTer[M3.poz+1][86]!='\0');
  210.     m3();
  211.     do
  212.         R.poz=rand () % 19;
  213.     while (R.poz<2 || R.poz>18 || matTer[R.poz][88]!='\0' || matTer[R.poz-1][85]!='\0' || matTer[R.poz-1][86]!='\0' || matTer[R.poz-1][87]!='\0' || matTer[R.poz][85]!='\0' || matTer[R.poz][86]!='\0' ||matTer[R.poz-1][87]!='\0' );
  214.  
  215.     nava();
  216.  
  217.  
  218.     afisare();
  219.     system("cls");
  220.     while(M1.HP!=0 ){
  221.             miscare();
  222.             m1(); m2(); m3(); m4(); r();
  223.             Sleep(30);
  224.             system("cls");
  225.             cout<<M1.HP;
  226.             afisare();}
  227.  
  228.     return 0;
  229. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement