Facebook
From a, 1 Month ago, written in Plain Text.
Embed
Download Paste or View Raw
Hits: 129
  1. #include <iostream>
  2. #include <conio.h>
  3. #include <windows.h>
  4. #include <ctime>
  5.  
  6. using namespace std;
  7.  
  8. class Snake {
  9. protected:
  10.     int xy[1250][2] = {-1,-1};
  11.     int sizee = 3;
  12. public:
  13.  
  14.     Snake()
  15.     {
  16.         for(int i = 0; i < 1250; i++) {
  17.             for(int j = 0; j < 2; j++) {
  18.                 xy[i][j] = -1;
  19.             }
  20.         }
  21.         xy[0][0] = 25;
  22.         xy[0][1] = 12;
  23.         xy[1][0] = 24;
  24.         xy[1][1] = 12;
  25.         xy[2][0] = 23;
  26.         xy[2][1] = 12;
  27.     }
  28.  
  29.  
  30.     void movee(char direction,bool eaten,bool &endd;,char tab[25][50]) {
  31.         if(eaten)
  32.         {
  33.             sizee++;
  34.         }
  35.         for(int i=sizee-1;i>0;i--)
  36.         {
  37.             for(int ii=0;ii<2;ii++)
  38.             {
  39.                 xy[i][ii] = xy[i-1][ii];
  40.             }
  41.         }
  42.  
  43.         switch (direction) {
  44.             case 'w':
  45.                 xy[0][1]--;
  46.                 break;
  47.             case 's':
  48.                 xy[0][1]++;
  49.                 break;
  50.             case 'a':
  51.                 xy[0][0]--;
  52.                 break;
  53.             case 'd':
  54.                 xy[0][0]++;
  55.                 break;
  56.         }
  57.         if(tab[xy[0][1]][xy[0][0]] == 'x')
  58.             endd = true;
  59.     }
  60.  
  61. };
  62.  
  63. class Fruit: public Snake{
  64. protected:
  65.     int x_fruit,y_fruit;
  66. public:
  67.     Fruit()
  68.     {
  69.         srand(time(NULL));
  70.         do{
  71.             x_fruit = rand()% 48 + 1;
  72.             y_fruit = rand()% 23 + 1;
  73.         }while(x_fruit == xy[0][0] || y_fruit == xy[0][1]);
  74.     }
  75.  
  76.     bool spr_fruit()
  77.     {
  78.         for(int i=0;i<sizee;i++)
  79.         {
  80.             if(xy[i][0] == x_fruit || xy[i][1] == y_fruit)
  81.                 return true;
  82.         }
  83.         return false;
  84.     }
  85.  
  86.     void createFruit(){
  87.             do{
  88.                 x_fruit = rand()% 48 + 1;
  89.                 y_fruit = rand()% 23 + 1;
  90.             }while(spr_fruit());
  91.     }
  92. };
  93.  
  94.  
  95. class Board : public Fruit {
  96.     char tab[25][50];
  97. public:
  98.     Board() {
  99.         for (int i = 0; i < 25; i++) {
  100.             for (int ii = 0; ii < 50; ii++) {
  101.                 if (i == 0 || i == 23)
  102.                     tab[i][ii] = '-';
  103.                 else if (ii == 0 || ii == 48)
  104.                     tab[i][ii] = '|';
  105.                 else
  106.                     tab[i][ii] = ' ';
  107.             }
  108.         }
  109.     }
  110.     bool spr(int x, int y)
  111.     {
  112.         for(int i=0;i< 25; i++) {
  113.                 for (int ii = 0; ii < 50; ii++) {
  114.                     if (i == 0 || i == 24)
  115.                         tab[i][ii] = '-';
  116.                     else if (ii == 0 || ii == 49)
  117.                         tab[i][ii] = '|';
  118.                     else
  119.                         tab[i][ii] = ' ';
  120.                 }
  121.             }
  122.  
  123.             if(xy[0][0] == x_fruit && xy[0][1] == y_fruit)
  124.             {
  125.                     eaten = true;
  126.                     createFruit();
  127.             }
  128.             for (int i = 0; i < 25; i++) {
  129.                 for (int ii = 0; ii < 50; ii++) {
  130.                     if(spr(ii,i))
  131.                     {
  132.                         tab[i][ii] = 'x';
  133.                     }
  134.                     if(ii == x_fruit && i == y_fruit)
  135.                     {
  136.                         tab[i][ii] = '*';
  137.                     }
  138.                     cout << tab[i][ii];
  139.                 }
  140.                 cout << endl;
  141.             }
  142.              directi
  143.             movee(direction,eaten,endd2,tab);
  144.             if(endd() || endd2)
  145.             {
  146.                 cout << "przgrales" << endl;
  147.                 break;
  148.             }
  149.         }
  150.     }
  151. };
  152.  
  153. int main() {
  154.     Board b1;
  155.     b1.draw();
  156.  
  157.     return 0;
  158. }
  159.