Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <Windows.h>
- #include <conio.h>
- #include <stdio.h>
- #include <time.h>
- #include <stdlib.h>
- #include <stdio.h>
- #define LUNGIME 91
- #define LATIME 20
- #define SIMBOL_MARGINE1 '-'
- #define SIMBOL_MARGINE2 '|'
- using namespace std;
- int sh=1;
- struct Monstru{
- int HP, poz;
- char FORMA[7][7],LASER;
- };
- Monstru M1, M2, M3, M4, R;
- char matTer[LATIME][LUNGIME];
- short int pozNava = 4;
- void m1 (){
- matTer[M1.poz][87]=M1.FORMA[2][1];
- 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];
- }
- void m2(){
- matTer[M2.poz][85]=matTer[M2.poz][86]=matTer[M2.poz][87]=M2.FORMA[1][1];
- }
- void m3(){
- 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];
- }
- void m4()
- {
- matTer[M4.poz -1][85]=M4.FORMA[1][2];
- matTer[M4.poz][85]=matTer[M4.poz][88]=M4.FORMA[2][2];
- matTer[M4.poz +1][85]=M4.FORMA[4][1];
- matTer[M4.poz-1][84]=matTer[M4.poz +1][84]=M4.FORMA[1][1];
- matTer[M4.poz -1 ][86]=matTer[M4.poz -1][87]=matTer[M4.poz +1][86]=matTer[M4.poz +1][87]=M4.FORMA[1][3];
- matTer[M4.poz -1][88]=M4.FORMA[1][6];
- matTer[M4.poz+1][88]=M4.FORMA[4][6];
- matTer[M4.poz][86]=matTer[M4.poz][87]=M4.FORMA[3][3];
- }
- void r(){
- matTer[R.poz][88]=R.FORMA[2][4];
- matTer[R.poz-1][85]=matTer[R.poz-1][86]=matTer[R.poz-1][87]=R.FORMA[1][2];
- matTer[R.poz][85]=matTer[R.poz][86]=matTer[R.poz ][87]=R.FORMA[1][2];
- matTer[R.poz][84]=R.FORMA[2][1];
- }
- void show_cursor(bool show){ //vizibilitate curosor in consola
- HANDLE out = GetStdHandle(STD_OUTPUT_HANDLE);
- CONSOLE_CURSOR_INFO infCursor;
- GetConsoleCursorInfo(out, &infCursor);
- infCursor.bVisible = show;
- SetConsoleCursorInfo(out, &infCursor);
- }
- int check (char x)
- {
- int i,j;
- for( i=1;i<=4;i++)
- for( j=1;j<=3 ;j++)
- if (x==M1.FORMA[i][j])
- return 1;
- for( i=1;i<=5;i++)
- for( j=1;j<=1 ;j++)
- if (x==M2.FORMA[i][j])
- return 2;
- for( i=1;i<=4;i++)
- for(j=1;j<=4 ;j++)
- if (x==M3.FORMA[i][j])
- return 3;
- for(i=1 ; i<=5 ;i++)
- for( j=1;j<=6 ;j++)
- if (x==M4.FORMA[i][j])
- return 4;
- }
- void afisare(){
- for (int i = 1; i <= LATIME - 1; i++){
- for (int j = 1; j <= LUNGIME - 1; j++)
- if(matTer[i][j] != '\0')
- cout << matTer[i][j];
- else
- cout << ' ';
- cout << endl;
- }
- }
- void creare_teren(){
- int i;
- for (i = 1; i <= LATIME - 1; i++)
- matTer[i][1] = matTer[i][LUNGIME - 1] = SIMBOL_MARGINE2;
- for (i = 1; i <= LUNGIME - 1; i++)
- matTer[1][i] = matTer[LATIME - 1][i] = SIMBOL_MARGINE1;
- }
- void nava(){
- matTer[2][2] = matTer[3][2] = matTer[4][2] = matTer[3][3] = (char)219;
- }
- void miscare(){
- char newKey;
- int i,j;
- if (_kbhit())
- newKey = getch();
- if(newKey== (char)115)
- if(pozNava<18){
- matTer[pozNava + 1][2] = matTer[pozNava][2];
- matTer[pozNava ][3] = matTer[pozNava-1][3];
- matTer[pozNava - 2][2] = matTer[pozNava-1][3] = '\0';
- pozNava++;
- }
- if(newKey==(char)119)
- if(pozNava>4){
- matTer[pozNava -3][2]=matTer[pozNava][2];
- matTer[pozNava-2][3]=matTer[pozNava-1][3];
- matTer[pozNava][2]=matTer[pozNava -1][3]='\0';
- pozNava--;
- }
- if(newKey==(char)32)
- matTer[pozNava-1][4]=(char)248;
- /*if(sh%8==1)
- {
- matTer[M1.poz][86]=M1.LASER;
- matTer[M2.poz][83]=M2.LASER;
- matTer[M3.poz][82]=M3.LASER;
- matTer[M4.poz -1][82]=matTer[M4.poz +1][82]=M4.LASER;
- }
- sh++;
- */
- for(i = 1; i <= LATIME-3 ; i++)
- for( j = 1 ; j<=LUNGIME-3; j++)
- if(matTer[i][j]==(char)248)
- {if(matTer[i][j+2]=='\0')
- {if(j < LUNGIME-3)
- {matTer[i][j+2]=(char)248;
- matTer[i][j]='\0';
- j=j+2;}
- }
- else {
- if(check(matTer[i][j+2])==1)
- M1.HP--;
- else
- if(check(matTer[i][j+2])==2)
- M2.HP--;
- else
- if(check(matTer[i][j+2])==3)
- M3.HP--;
- else
- if(check(matTer[i][j+2])==4)
- M4.HP--;
- matTer[i][j]='\0';}
- }
- /*else
- if(matTer[i][j]==M1.LASER || matTer[i][j]==M2.LASER || matTer[i][j]==M3.LASER || matTer[i][j]==M4.LASER)
- {
- matTer[i][j-1]=matTer[i][j];
- matTer[i][j]='\0';
- }*/
- }
- int main (){
- int x=1;
- creare_teren();
- show_cursor(false);
- M1.HP=3; M2.HP=1; M3.HP=4; M4.HP=6;
- M1.FORMA[2][1]=(char)174;
- M1.FORMA[1][2]=M1.FORMA[2][2]=M1.FORMA[3][2]=(char)254;
- M2.FORMA[1][1]=M2.FORMA[1][2]=M2.FORMA[1][3]=char(178);
- 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';
- R.FORMA[2][1]='<';
- R.FORMA[1][2]=R.FORMA[1][3]=R.FORMA[2][2]=R.FORMA[2][3]='_';
- R.FORMA[2][4]='|';
- M4.FORMA[1][1]=M4.FORMA[4][1]='-';
- M4.FORMA[1][2]=char(201);
- M4.FORMA[1][6]=char(187);
- M4.FORMA[2][2]=M4.FORMA[3][2]=char(186);
- 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);
- M4.FORMA[2][6]=M4.FORMA[3][6]=char(186);
- M4.FORMA[4][1]=char(200);
- M4.FORMA[4][6]=char(188);
- M4.FORMA[3][2]=M4.FORMA[3][3]= ' ';
- srand(time(NULL));
- do
- M4.poz=rand() % 19 ;
- while (M4.poz < 5 || M4.poz>16 );
- m4();
- do
- M1.poz=rand() % 19 ;
- 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');
- m1();
- do
- M2.poz=rand() % 19 ;
- while (M2.poz < 2 || matTer[M2.poz][85]!= '\0' || matTer[M2.poz][86]!= '\0' || matTer[M2.poz][87]!= '\0');
- m2();
- do
- M3.poz=rand() % 19 ;
- 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');
- m3();
- do
- R.poz=rand () % 19;
- 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' );
- r();
- nava();
- M1.LASER=char(94);
- M2.LASER='-';
- M3.LASER='.';
- M4.LASER='~';
- afisare();
- system("cls");
- while(M1.HP!=0 ){
- miscare();
- Sleep(3);
- system("cls");
- cout<<M1.HP;
- afisare();}
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement