#include <iostream> #include <conio.h> #include <windows.h> #include <ctime> using namespace std; class Snake { protected: int xy[1250][2] = {-1,-1}; int sizee = 3; public: Snake() { for(int i = 0; i < 1250; i++) { for(int j = 0; j < 2; j++) { xy[i][j] = -1; } } xy[0][0] = 25; xy[0][1] = 12; xy[1][0] = 24; xy[1][1] = 12; xy[2][0] = 23; xy[2][1] = 12; } void movee(char direction,bool eaten,bool &endd;,char tab[25][50]) { if(eaten) { sizee++; } for(int i=sizee-1;i>0;i--) { for(int ii=0;ii<2;ii++) { xy[i][ii] = xy[i-1][ii]; } } switch (direction) { case 'w': xy[0][1]--; break; case 's': xy[0][1]++; break; case 'a': xy[0][0]--; break; case 'd': xy[0][0]++; break; } if(tab[xy[0][1]][xy[0][0]] == 'x') endd = true; } }; class Fruit: public Snake{ protected: int x_fruit,y_fruit; public: Fruit() { srand(time(NULL)); do{ x_fruit = rand()% 48 + 1; y_fruit = rand()% 23 + 1; }while(x_fruit == xy[0][0] || y_fruit == xy[0][1]); } bool spr_fruit() { for(int i=0;i<sizee;i++) { if(xy[i][0] == x_fruit || xy[i][1] == y_fruit) return true; } return false; } void createFruit(){ do{ x_fruit = rand()% 48 + 1; y_fruit = rand()% 23 + 1; }while(spr_fruit()); } }; class Board : public Fruit { char tab[25][50]; public: Board() { for (int i = 0; i < 25; i++) { for (int ii = 0; ii < 50; ii++) { if (i == 0 || i == 23) tab[i][ii] = '-'; else if (ii == 0 || ii == 48) tab[i][ii] = '|'; else tab[i][ii] = ' '; } } } bool spr(int x, int y) { for(int i=0;i< 25; i++) { for (int ii = 0; ii < 50; ii++) { if (i == 0 || i == 24) tab[i][ii] = '-'; else if (ii == 0 || ii == 49) tab[i][ii] = '|'; else tab[i][ii] = ' '; } } if(xy[0][0] == x_fruit && xy[0][1] == y_fruit) { eaten = true; createFruit(); } for (int i = 0; i < 25; i++) { for (int ii = 0; ii < 50; ii++) { if(spr(ii,i)) { tab[i][ii] = 'x'; } if(ii == x_fruit && i == y_fruit) { tab[i][ii] = '*'; } cout << tab[i][ii]; } cout << endl; } directi movee(direction,eaten,endd2,tab); if(endd() || endd2) { cout << "przgrales" << endl; break; } } } }; int main() { Board b1; b1.draw(); return 0; }