SHARE
TWEET

Dinosaur

a guest Feb 21st, 2020 79 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <iostream>
  2. #include <string>
  3. #include <ctime>
  4. #include <conio.h>
  5. #include <windows.h>
  6. using namespace std;
  7.  
  8. struct player{
  9.     int x,y;
  10.     double rx,ry;
  11.     double dx,dy;
  12. };
  13.  
  14. struct ananas{
  15.     int x,h,w;
  16. };
  17.  
  18. int a_count = 10;       // Кол-во ананасов
  19. ananas a[100];          // Кол-во ананасов
  20.  
  21. player p;
  22.  
  23. int bestscore=0,nowscore=0;
  24. int rr;
  25. int A1;
  26. char g;
  27.  
  28. bool isAnanasHere(int x, int y){
  29.     for(int i = 0;i < a_count;i++){
  30.         int ax_screen = a[i].x - p.x + 20;
  31.         if(x >= ax_screen  && y >= 20 - a[i].h && x < ax_screen + a[i].w){
  32.             //A1 = x >= ax_screen-30 && y>=20 + 20 - a[i].h && x < ax_screen + a[i].w - 40;
  33.             return true;
  34.         }
  35.     }
  36.     return false;
  37. }
  38. void print(){
  39. resett:
  40.     rr++;
  41.     COORD c = {0, 0};
  42.     HANDLE output=GetStdHandle(STD_OUTPUT_HANDLE);
  43.     SetConsoleCursorPosition(output,c);
  44.     int max_h = 20;         // Размер экрана по высоте
  45.     int max_w = 50;         // Размер экрана по длине
  46.     for(int i = 0;i < max_h;i++){
  47.         for(int j = 0;j < max_w;j++){
  48.             if(i == 5 && j == 3){           // Солнце
  49.                 cout << "       \\      |      / " << endl;
  50.                 cout << "               _____" << endl;
  51.                 cout << "              /     \\ " << endl;
  52.                 cout << "         _   |       |   _" << endl;
  53.                 cout << "             |       | " << endl;
  54.                 cout << "              \\_____/" << endl << endl;
  55.                 cout << "          /      |      \\ " << endl;
  56.             }
  57.             int max_h = 20;         // Размер экрана по высоте
  58.             int max_w = 50;         // Размер экрана по длине
  59.             if(isAnanasHere(20, p.y) == true){
  60.                 cout<<"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\t\tG A M E   O V E R";
  61.                 cout << "\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t";
  62.                 system("pause");
  63.                 if(nowscore > bestscore){
  64.                     bestscore = nowscore;
  65.                 }
  66.                 nowscore = 0;
  67.                 p.y = -1;
  68.                 goto resett;
  69.             }
  70.             if(i == 2 && j == 40){
  71.                 cout << "HI " << bestscore << " " << nowscore;
  72.             }
  73.             if(i == p.y-1 && j == 20){          // Игрок
  74.                 cout << "&";
  75.             }
  76.             if(i == p.y && j == 20){            // Игрок
  77.                 cout << "&";
  78.             }else{
  79.                 if(isAnanasHere(j, i) == true){
  80.                     cout << "x";
  81.                 }else{
  82.                     cout << " ";
  83.                 }
  84.             }
  85.         }
  86.         cout << endl;
  87.     }
  88.     for(int i = 49;i < 50;i++){         // Создание песка
  89.         int r = rand()%6;
  90.         switch(r){
  91.         case 0:
  92.             cout << ".";
  93.             break;
  94.         case 1:
  95.             cout << "_";
  96.             break;
  97.         case 2:
  98.             cout << "_";
  99.             break;
  100.         case 3:
  101.             cout << "_";
  102.             break;
  103.         case 4:
  104.             cout << "-";
  105.             break;
  106.         case 5:
  107.             cout << "-";
  108.             break;
  109.         }
  110.     }
  111. }
  112.  
  113. int main(){
  114. reset:
  115.     srand(time(NULL));
  116.     p.rx = 0;
  117.     p.ry = 19;
  118.     p.x = (int)p.rx;
  119.     p.y = (int)p.ry;
  120.     for(int q = 0;q < 10;q++){
  121.         a[q].x = 50 + rand()%400; // расстояние до ананасов
  122.         a[q].h = 1 + rand()%3;// высота ананасов
  123.         a[q].w = 1 + rand()%3;// ширина ананасов
  124.     }
  125.     for(;;){
  126.         p.x = (int)p.rx;
  127.         p.y = (int)p.ry;
  128.         p.ry = p.ry - p.dy;
  129.         p.dy -= 0.3;
  130.         if(p.ry > 19){
  131.             p.ry = 19;
  132.         }
  133.         print();
  134.         Sleep(1);
  135.         p.rx++;
  136.         nowscore++;
  137.         if(isAnanasHere(20, p.y) != true){
  138.             if(_kbhit()){
  139.                 g = getch();
  140.                 switch(g){
  141.                 case 13:
  142.                     if(nowscore > bestscore){
  143.                         bestscore = nowscore;
  144.                     }
  145.                     nowscore = 0;
  146.                     goto reset;
  147.                     break;
  148.                 case 32:
  149.                     if(p.y == 19){
  150.                         p.dy = 1.6;
  151.                     }
  152.                     break;
  153.                 }
  154.             }
  155.         }
  156.     }
  157.     return 0;
  158. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
Top