Facebook
From asd, 7 Years ago, written in C++.
Embed
Download Paste or View Raw
Hits: 252
  1. /*
  2. {9 czerwca sprawozdanie jak dobudowany
  3. +działający program
  4. }*/
  5.  
  6. /* ---bombardowanie----
  7. ----efekt ruchu---
  8. definiowanie elementów w tablicy dynamicznej--
  9. */
  10.  
  11. //WPROWADZENIE BIBLIOTEK
  12. #include <iostream>
  13. #include <iomanip>
  14. #include <Windows.h>//do funkcji sleep()
  15. #include <time.h>//do funkcji srand() //żeb można było generować
  16. #include <conio.h>//dofunkcji np.: kbhit() //korzystanie z klawiatury
  17.  
  18. //DEKLARACJA STAŁYCH
  19. //samolot
  20. #define SAMOLOT "="
  21. #define SAMOLOT_T "T" //ustalenie znaku dla sylwetki T samolotu
  22. #define SAMOLOT_P ">"//ustalenie znaku dla sylwetki P samolotu
  23. //tablica pole_bitwy
  24. #define SZEROKOSC 50 //ustalenie szerokosci tablicy
  25. #define WYSOKOSC 20 //ustalenie wysokosci tablicy
  26. //instrukcja czyszcząca
  27. #define CZYSC_INSTRUKCJE "cls"
  28. #define BOMBA 4//ustalenie znaku bomby (kod ASCII) tu romb (4 to romb)(15)
  29. #define EXPLOSJA 42 //ustalenie znaku eksplozji (kod ASCII) to gwaizdka
  30.  
  31. HANDLE hOut;
  32. //blok definiowania zmiennych
  33. int samolot_odstep=0; //zmienna pomocnicza
  34. char pole_bitwy[WYSOKOSC][SZEROKOSC];
  35. bool przemieszczenie_prawo = true;
  36.  
  37. using namespace std;
  38.  
  39. void maluj_samolot(){
  40.  cout<<setw(samolot_odstep+2);//ustawienie lewego marginesu od krawedzi pola bitwy żeby samolot się nie schował
  41.  cout<<SAMOLOT_T<<SAMOLOT<<SAMOLOT_P<<"\n";
  42. }
  43.  
  44. void krok_samolot()//przaelot samolotu - warunki do trasy samolotu
  45. {
  46.  if(samolot_odstep == SZEROKOSC-2)//jezeli samolot doszedl do max szerokosci
  47.  przemieszczenie_prawo=false;//ruch nie istnieje
  48.  else if(samolot_odstep==0)//jezeli samolot jest w min szerokosci
  49.  przemieszczenie_prawo=true;//ruch istnieje
  50.  
  51.  if(przemieszczenie_prawo)//jezeli ruch istnieje
  52.  samolot_odstep++;//inkrementuj pozycje
  53.  else//jezeli nie istnieje
  54.  samolot_odstep--;//dekrementuj pozycje
  55. }
  56. void maluj_bomby()
  57. {
  58.  SetConsoleTextAttribute( hOut, FOREGROUND_BLUE | FOREGROUND_RED | FOREGROUND_INTENSITY | BACKGROUND_BLUE);
  59.  for(int i=0;i<WYSOKOSC;i++)
  60.  {
  61.  for(int j=0; j<SZEROKOSC;j++)
  62.  {
  63.  if(pole_bitwy[i][j] == 0)//obszar zrzutu bąby nie może być w pierwszym wierszu
  64.  printf(" ");
  65.  else
  66.  printf("%c",pole_bitwy[i][j]);//wywo?anie z kodu ASCII znaku char i pierwszy sposob rysowania
  67.  //cout<<pole_bitwy[i][j]; drugi sposob malowania
  68.  }
  69.  printf("\n");
  70.  }
  71. }
  72. void krok_bomb()
  73. {
  74.  //przesuniecie bomb w dol, jesli sa w ostatniej kratce bedzie eksplozja
  75.  for(int i=(WYSOKOSC-1);i>0;i--)
  76.  {
  77.  for(int j=0;j<SZEROKOSC;j++)
  78.  {
  79.  if(pole_bitwy[i-1][j]==BOMBA)
  80.  {
  81.  pole_bitwy[i-1][j] = 0;
  82.  pole_bitwy[i][j] = BOMBA;
  83.  }
  84.  if(i== WYSOKOSC-1)
  85.  {
  86.  if(pole_bitwy[i][j]== BOMBA)//warunek zamiany znaku bomby na eksplozje
  87.  pole_bitwy[i][j]=EXPLOSJA;
  88.  else
  89.  pole_bitwy[i][j]=0;//wygaszanie bomby
  90.  }
  91.  }
  92.  }
  93.  //losowanie zrzutu
  94.  if(rand()%10<2)//na oko 20% szansy na bomby
  95.  {
  96.  pole_bitwy[0][samolot_odstep]=BOMBA;//zrzut pojedynczy
  97.  //pole_bitwy[0][samolot_odstep+1]=BOMBA;//zrzut drugi seryjny
  98.  }
  99. }
  100.  
  101. int main(int argc, char** argv) {
  102.  srand(time(NULL));//silnik do uruchomienia ruchu
  103.  
  104.  for(int i=0;i<WYSOKOSC;i++)
  105.  for(int j=0;j<SZEROKOSC;j++)
  106.  pole_bitwy[i][j]=0;
  107.  
  108.  while(1)//petla nieskonczona otwarcie
  109.  {
  110.  if(kbhit())//je?eli nacisniesz dowolny klawisz (keyboard hit)
  111.  {
  112.  break;
  113.  }
  114.  else
  115.  {
  116.  maluj_samolot();
  117.  krok_samolot();
  118.  maluj_bomby();
  119.  krok_bomb();
  120.  Sleep(50);
  121.  system(CZYSC_INSTRUKCJE);
  122.  }
  123.  }
  124.  
  125.  
  126.  cin.get();
  127.  
  128.  return 0;
  129. }