Advertisement
TroubleMaker84

Untitled

Dec 25th, 2017
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 7.47 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. int sh=1;
  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][87]=M1.FORMA[2][1];
  26.     matTer[M1.poz -1][89]=matTer[M1.poz ][89]=matTer[M1.poz + 1][89]=matTer[M1.poz-1][88]=matTer[M1.poz][88]=matTer[M1.poz+1][88]=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.     matTer[M4.poz][86]=matTer[M4.poz][87]=M4.FORMA[3][3];
  47. }
  48.  
  49. void r(){
  50.     matTer[R.poz][88]=R.FORMA[2][4];
  51.     matTer[R.poz-1][85]=matTer[R.poz-1][86]=matTer[R.poz-1][87]=R.FORMA[1][2];
  52.     matTer[R.poz][85]=matTer[R.poz][86]=matTer[R.poz ][87]=R.FORMA[1][2];
  53.     matTer[R.poz][84]=R.FORMA[2][1];
  54. }
  55.  
  56. void show_cursor(bool show){ //vizibilitate curosor in consola
  57.     HANDLE out = GetStdHandle(STD_OUTPUT_HANDLE);
  58.     CONSOLE_CURSOR_INFO infCursor;
  59.     GetConsoleCursorInfo(out, &infCursor);
  60.     infCursor.bVisible = show;
  61.     SetConsoleCursorInfo(out, &infCursor);
  62. }
  63.  
  64. int check (char x)
  65.     {
  66.         int i,j;
  67.         for( i=1;i<=4;i++)
  68.             for( j=1;j<=3 ;j++)
  69.                 if (x==M1.FORMA[i][j])
  70.                     return 1;
  71.  
  72.         for( i=1;i<=5;i++)
  73.             for( j=1;j<=1 ;j++)
  74.                 if (x==M2.FORMA[i][j])
  75.                     return 2;
  76.  
  77.  
  78.         for( i=1;i<=4;i++)
  79.             for(j=1;j<=4  ;j++)
  80.                 if (x==M3.FORMA[i][j])
  81.                     return 3;
  82.  
  83.  
  84.         for(i=1 ; i<=5  ;i++)
  85.             for( j=1;j<=6 ;j++)
  86.                 if (x==M4.FORMA[i][j])
  87.                     return 4;
  88.  
  89.     }
  90.  
  91. void afisare(){
  92.     for (int i = 1; i <= LATIME - 1; i++){
  93.         for (int j = 1; j <= LUNGIME - 1; j++)
  94.             if(matTer[i][j] != '\0')
  95.  
  96.  
  97.                 cout << matTer[i][j];
  98.             else
  99.                 cout << ' ';
  100.         cout << endl;
  101.     }
  102. }
  103.  
  104. void creare_teren(){
  105.     int i;
  106.     for (i = 1; i <= LATIME - 1; i++)
  107.         matTer[i][1] = matTer[i][LUNGIME - 1] = SIMBOL_MARGINE2;
  108.     for (i = 1; i <= LUNGIME - 1; i++)
  109.         matTer[1][i] = matTer[LATIME - 1][i] = SIMBOL_MARGINE1;
  110. }
  111.  
  112. void nava(){
  113.     matTer[2][2] = matTer[3][2] = matTer[4][2] = matTer[3][3] = (char)219;
  114. }
  115.  
  116. void miscare(){
  117.     char newKey;
  118.     int i,j;
  119.     if (_kbhit())
  120.         newKey = getch();
  121.     if(newKey== (char)115)
  122.             if(pozNava<18){
  123.             matTer[pozNava + 1][2] = matTer[pozNava][2];
  124.             matTer[pozNava ][3] = matTer[pozNava-1][3];
  125.             matTer[pozNava - 2][2] = matTer[pozNava-1][3] = '\0';
  126.             pozNava++;
  127.             }
  128.  
  129.     if(newKey==(char)119)
  130.             if(pozNava>4){
  131.                 matTer[pozNava -3][2]=matTer[pozNava][2];
  132.                 matTer[pozNava-2][3]=matTer[pozNava-1][3];
  133.                 matTer[pozNava][2]=matTer[pozNava -1][3]='\0';
  134.                 pozNava--;
  135.                 }
  136.  
  137.     if(newKey==(char)32)
  138.             matTer[pozNava-1][4]=(char)248;
  139.  
  140.     /*if(sh%8==1)
  141.     {
  142.         matTer[M1.poz][86]=M1.LASER;
  143.         matTer[M2.poz][83]=M2.LASER;
  144.         matTer[M3.poz][82]=M3.LASER;
  145.         matTer[M4.poz -1][82]=matTer[M4.poz +1][82]=M4.LASER;
  146.     }
  147.     sh++;
  148.  
  149. */
  150.     for(i = 1; i <= LATIME-3 ; i++)
  151.         for( j = 1 ; j<=LUNGIME-3; j++)
  152.                 if(matTer[i][j]==(char)248)
  153.                     {if(matTer[i][j+2]=='\0')
  154.                         {if(j < LUNGIME-3)
  155.                             {matTer[i][j+2]=(char)248;
  156.                             matTer[i][j]='\0';
  157.                             j=j+2;}
  158.                         }
  159.                      else   {
  160.                             if(check(matTer[i][j+2])==1)
  161.                                 M1.HP--;
  162.  
  163.                             else
  164.                                 if(check(matTer[i][j+2])==2)
  165.                                     M2.HP--;
  166.                                 else
  167.                                     if(check(matTer[i][j+2])==3)
  168.                                         M3.HP--;
  169.  
  170.                                     else
  171.                                         if(check(matTer[i][j+2])==4)
  172.                                             M4.HP--;
  173.  
  174.                             matTer[i][j]='\0';}
  175.                     }
  176.                 /*else
  177.                     if(matTer[i][j]==M1.LASER || matTer[i][j]==M2.LASER || matTer[i][j]==M3.LASER || matTer[i][j]==M4.LASER)
  178.                     {
  179.                         matTer[i][j-1]=matTer[i][j];
  180.                         matTer[i][j]='\0';
  181.                     }*/
  182.  
  183. }
  184.  
  185. int main (){
  186.     int x=1;
  187.     creare_teren();
  188.     show_cursor(false);
  189.     M1.HP=3; M2.HP=1; M3.HP=4; M4.HP=6;
  190.     M1.FORMA[2][1]=(char)174;
  191.     M1.FORMA[1][2]=M1.FORMA[2][2]=M1.FORMA[3][2]=(char)254;
  192.  
  193.     M2.FORMA[1][1]=M2.FORMA[1][2]=M2.FORMA[1][3]=char(178);
  194.  
  195.     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';
  196.  
  197.     R.FORMA[2][1]='<';
  198.     R.FORMA[1][2]=R.FORMA[1][3]=R.FORMA[2][2]=R.FORMA[2][3]='_';
  199.     R.FORMA[2][4]='|';
  200.  
  201.     M4.FORMA[1][1]=M4.FORMA[4][1]='-';
  202.     M4.FORMA[1][2]=char(201);
  203.     M4.FORMA[1][6]=char(187);
  204.     M4.FORMA[2][2]=M4.FORMA[3][2]=char(186);
  205.     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);
  206.     M4.FORMA[2][6]=M4.FORMA[3][6]=char(186);
  207.     M4.FORMA[4][1]=char(200);
  208.     M4.FORMA[4][6]=char(188);
  209.     M4.FORMA[3][2]=M4.FORMA[3][3]= ' ';
  210.     srand(time(NULL));
  211.      do
  212.         M4.poz=rand() %  19  ;
  213.     while (M4.poz < 5 || M4.poz>16 );
  214.     m4();
  215.     do
  216.         M1.poz=rand() %  19  ;
  217.     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');
  218.     m1();
  219.     do
  220.         M2.poz=rand() %  19  ;
  221.     while (M2.poz < 2 || matTer[M2.poz][85]!= '\0' || matTer[M2.poz][86]!= '\0' || matTer[M2.poz][87]!= '\0');
  222.     m2();
  223.     do
  224.         M3.poz=rand() % 19  ;
  225.     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');
  226.     m3();
  227.     do
  228.         R.poz=rand () % 19;
  229.     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' );
  230.     r();
  231.     nava();
  232.     M1.LASER=char(94);
  233.     M2.LASER='-';
  234.     M3.LASER='.';
  235.     M4.LASER='~';
  236.  
  237.  
  238.     afisare();
  239.     system("cls");
  240.     while(M1.HP!=0 ){
  241.             miscare();
  242.             Sleep(3);
  243.             system("cls");
  244.             cout<<M1.HP;
  245.             afisare();}
  246.  
  247.     return 0;
  248. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement