Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <conio.h> // getch()
- #include <cstdlib> // system ("cls")
- #include <time.h>
- #include <windows.h>
- using namespace std;
- int szerokosc, wysokosc, szybkosc;
- int gora, dol, lewo, prawo;
- char pole [35][35];
- int wspolzednaXweza, wspolzednaYweza;
- int wspolzednaXjedzenia, wspolzednaYjedzenia;
- int dlugosc=4, historiaWspozendnejX[10000], historiaWspozendnejY[10000];
- int ile=0;
- int klawisz;
- char waz=219, jed=178, pd=188, pg=187, lg=201, ld=200, poz=205, pio=186;
- char kierunek='p';
- void idzdoxy (int x, int y)
- {
- HANDLE hCon;
- COORD dwPos;
- dwPos.X=x;
- dwPos.Y=y;
- hCon = GetStdHandle(STD_OUTPUT_HANDLE) ;
- SetConsoleCursorPosition(hCon, dwPos) ;
- }
- int zwymyslaj( int &x)
- {
- cout << "Mialo byc od 5 do 35:" << endl;
- cout << "Masz ostatnia szanse" << endl;
- cin >> x;
- if (x<5 || x>35 ) x = 14;
- }
- int main()
- {
- cout << "Podaj szerokosc planszy od 5 do 35!" << endl;
- cin >> szerokosc;
- if ( szerokosc<5 || szerokosc>35 ) zwymyslaj(szerokosc);
- cout << "Podaj wysokosc planszy od 5 do 35!" << endl;
- cin >> wysokosc;
- if ( wysokosc<5 || wysokosc>35 ) zwymyslaj(wysokosc);
- cout << "Podaj szybkosc weza od 1 do 10" << endl;
- cin >> szybkosc;
- if ( szybkosc<1 || szybkosc>10 )szybkosc = 5 ;
- cout << "Nasicnik klawisze ktorymi chcesz grac" << endl;
- cout << "GORA" << endl;
- gora=getch();
- if(gora==224)gora=+getch();
- if(gora==0)gora=-getch();
- cout << "DOL" << endl;
- dol=getch();
- if(dol==224)dol=+getch();
- if(dol==0)dol=-getch();
- cout << "LEWO" << endl;
- lewo=getch();
- if(lewo==224)lewo=+getch();
- if(lewo==0)lewo=-getch();
- cout << "PRAWO" << endl;
- prawo=getch();
- if(prawo==224)prawo=+getch();
- if(prawo==0)prawo=-getch();
- for(int i=0 ; i<wysokosc; i++)
- {
- for(int j=0 ; j<szerokosc; j++)
- {
- pole[j][i]='p';
- }
- }
- srand(time(NULL));
- wspolzednaXweza=rand()%szerokosc;
- wspolzednaYweza=rand()%wysokosc;
- pole[wspolzednaXweza][wspolzednaYweza]='w';
- do{
- wspolzednaXjedzenia=rand()%szerokosc;
- wspolzednaYjedzenia=rand()%wysokosc;
- }while(pole[wspolzednaXjedzenia][wspolzednaYjedzenia]!='p');
- pole[wspolzednaXjedzenia][wspolzednaYjedzenia]='j';
- system("CLS");
- for(;;)
- {
- ile++;
- historiaWspozendnejX[ile]=wspolzednaXweza;
- historiaWspozendnejY[ile]=wspolzednaYweza;
- pole[historiaWspozendnejX[ile-dlugosc]][historiaWspozendnejY[ile-dlugosc]]='p';
- // rysowanie planszy
- idzdoxy(0,0);
- //gorna ramka
- cout << lg;
- for(int i=0; i<szerokosc ; i++)
- {
- cout << poz << poz;
- }
- cout << pg;
- for(int i=0; i<wysokosc ; i++)
- {
- cout << endl << pio ;
- for(int j=0; j<szerokosc ; j++)
- {
- if (pole[i][j]=='p') cout << " ";
- if (pole[i][j]=='w') cout << waz << waz;
- if (pole[i][j]=='j') cout << jed << jed;
- }
- cout << pio;
- }
- cout << endl;
- cout << ld;
- for(int i=0; i<szerokosc ; i++)
- {
- cout << poz << poz;
- }
- cout << pd ;
- Sleep(1000/szybkosc);
- if(kbhit())
- {
- klawisz=getch();
- if (klawisz==224)klawisz+=getch();
- if (klawisz==0)klawisz-=getch();
- if(klawisz==gora && (kierunek=='l' || kierunek=='p')) kierunek='g';
- if(klawisz==dol && (kierunek=='l' || kierunek=='p')) kierunek='d';
- if(klawisz==lewo && (kierunek=='g' || kierunek=='d')) kierunek='l';
- if(klawisz==prawo && (kierunek=='g' || kierunek=='d')) kierunek='p';
- }
- if(kierunek=='d') wspolzednaXweza++;
- if(kierunek=='g') wspolzednaXweza--;
- if(kierunek=='l') wspolzednaYweza--;
- if(kierunek=='p') wspolzednaYweza++;
- if(wspolzednaXweza==szerokosc) wspolzednaXweza=0;
- if(wspolzednaXweza==-1) wspolzednaXweza=szerokosc-1;
- if(wspolzednaYweza==wysokosc) wspolzednaYweza=0;
- if(wspolzednaYweza==-1) wspolzednaYweza=wysokosc-1;
- if (pole[wspolzednaXweza][wspolzednaYweza]=='w')
- {
- cout << endl << "KONIEC dlugosc - " << dlugosc;
- break;
- }
- if (pole[wspolzednaXweza][wspolzednaYweza]=='j')
- {
- dlugosc++;
- do{
- wspolzednaXjedzenia=rand()%szerokosc;
- wspolzednaYjedzenia=rand()%wysokosc;
- }while(pole[wspolzednaXjedzenia][wspolzednaYjedzenia]!='p');
- pole[wspolzednaXjedzenia][wspolzednaYjedzenia]='j';
- }
- pole[wspolzednaXweza][wspolzednaYweza]='w';
- }
- getch();
- return 0 ;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement