Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <cstdio>
- #include<iostream>
- #include<iomanip>
- #include<Windows.h> //sleep
- #include<time.h> //f. srand rand()
- #include<conio.h> //kbhit()
- //deklaracje sta³ych
- //samolot
- #define SAMOLOT '=' //USATLENIE ZNAKU SYLWETKI SAMILOTU
- #define SAMOLOT_T '8' //USTAWIENIE ZNAKU DLA SYLWETKI T SAMOLOTU
- #define SAMOLOT_PP '>' //USTALENIE ZNAKU DLA SYLWETKI P w lewo SAMOLOTU
- #define SAMOLOT_PL '<' //USTALENIE ZNAKU DLA SYLWETKI P w Prawo SAMOLOTU
- //TABLICA POLE BITWY
- #define WYSOKOSC 20 //USTAWIENIE SZERO
- #define SZEROKOSC 70//WYSOKSC
- #define CZYSC_INSTRUKCJE "cls"
- #define BOMBA 4 //znak bomby na 87 z ascii
- #define EXPLOSJA 5
- #define SCHRON_P 186
- #define SCHRON_A 201
- #define SCHRON_G 205
- #define SCHRON_D 187
- #define KEY_UP 72
- #define KEY_DOWN 80
- #define KEY_LEFT 75
- #define KEY_RIGHT 77
- #define ESC 27
- #define SPACE 32
- //DEFINIOWANIE ZMIENNYCH
- int samolot_odstep=0; //zmienna pomocnicza
- char pole_bitwy[WYSOKOSC][SZEROKOSC]; //DEKLARACJA TABLICY POLA BITWY
- int wys=0;
- int szer=0;
- int atak=0;
- HANDLE hOut;
- void maluj_schron(int MIEJSCE)
- {
- pole_bitwy[WYSOKOSC-1][MIEJSCE-1]=SCHRON_P;
- pole_bitwy[WYSOKOSC-2][MIEJSCE-1]=SCHRON_A;
- pole_bitwy[WYSOKOSC-2][MIEJSCE]=SCHRON_G;
- pole_bitwy[WYSOKOSC-2][MIEJSCE+1]=SCHRON_D;
- pole_bitwy[WYSOKOSC-1][MIEJSCE+1]=SCHRON_P;
- }
- using namespace std;
- void maluj_samolot()
- {
- hOut=GetStdHandle( STD_OUTPUT_HANDLE);
- SetConsoleTextAttribute(hOut, FOREGROUND_GREEN | FOREGROUND_RED | FOREGROUND_INTENSITY | BACKGROUND_BLUE);
- for(int c=0; c<wys; c++){
- printf("\n");
- }
- for(int b=0; b<szer; b++){
- cout<<setw(samolot_odstep+1); //ustawienie lewego marginesu od krawedzi pola bitwy
- if(KEY_RIGHT)
- cout<<SAMOLOT_T<<SAMOLOT<<SAMOLOT_PP;
- else
- cout<<SAMOLOT_PL<<SAMOLOT<<SAMOLOT_T;
- }
- }
- void maluj_bombe()
- {
- SetConsoleTextAttribute(hOut, FOREGROUND_BLUE | FOREGROUND_RED | FOREGROUND_INTENSITY | BACKGROUND_BLUE);
- for(int i=0; i<WYSOKOSC; i++)
- {
- for(int j=0; j<SZEROKOSC; j++)
- {
- if(pole_bitwy[i][j]==0)
- printf(" ");
- else
- printf("%c",pole_bitwy[i][j]);
- }
- printf("\n");
- }
- }
- //-------------------------------------------------------------
- void krok_bomb()
- {
- for(int i=(WYSOKOSC-1); i>0 ;i--)
- {
- for(int j=0 ;j<SZEROKOSC; j++)
- {
- if(pole_bitwy[i-1][j]==BOMBA)
- {
- pole_bitwy[i-1][j]=0;
- pole_bitwy[i][j]=BOMBA;
- }
- if(i==(WYSOKOSC-1))
- {
- if(pole_bitwy[i][j]==BOMBA)
- pole_bitwy[i][j]=EXPLOSJA;
- else
- pole_bitwy[i][j]=0;
- }
- }
- }
- if(rand()%10<2)
- pole_bitwy[0][samolot_odstep]=BOMBA; //samolot_odstep+1 itd by wiecej
- }
- //--------------------------------------------------------------------------------
- int main()
- {
- srand(time(NULL));
- for(int i=0; i<WYSOKOSC; i++) /// wypelnianie tablicy po wysokosci
- for(int j=0; j<SZEROKOSC; j++)
- pole_bitwy[i][j]=0;
- int c = 0;
- int b = 0;
- while(1)
- {
- if(kbhit()) //jezeli nacisniesz dowolny klawisz z klawiatury
- {
- switch((c=getch(),b=getch())) {
- case KEY_UP:
- wys--;
- if(wys<0)
- wys=0;
- break;
- case KEY_DOWN:
- wys++;
- if(wys>8)
- wys=8;
- break;
- case KEY_RIGHT:
- if(szer>15)
- szer=15;
- szer++;
- break;
- case KEY_LEFT:
- if(szer<1)
- szer=1;
- szer--;
- break;
- };
- }
- else
- {
- maluj_samolot();
- maluj_bombe();
- krok_bomb();
- }
- maluj_schron(7);
- Sleep(100);
- system(CZYSC_INSTRUKCJE);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement