Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include<conio.h>
- #include<windows.h>
- using namespace std;
- int wczytaj()
- {
- int klawisz = getch();
- return klawisz;
- }
- enum kodyKlawiszy
- {
- gora = 72,
- dol = 80,
- lewo = 75,
- prawo = 77,
- enter = 13,
- esc = 27
- };
- void gotoxy(int x, int y)
- {
- COORD c;
- c.X=x-1;
- c.Y=y-1;
- SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),c);
- }
- int wczytajKlawisz (void)
- {
- int key=getch();
- return key;
- }
- void wyczyscEkran (void)
- {
- system( "cls" );
- }
- void napiszZnak (int x, int y, int c)
- {
- gotoxy(x, y);
- putch(c);
- }
- class Runner
- {
- private:
- int x, y;
- char kodZnaku ;
- public :
- void ustawX (int jakieX ) ;
- void ustawY ( int jakieY);
- void ustawPozycje (int jakieX, int jakieY);
- void ustawZnak (char jakiZnak);
- int podajX();
- int podajY();
- void podajPozycje (int& jakieX, int& jakieY);
- char podajZnak ();
- void przesunX (int oIle);
- void przesunY (int oIle);
- void przesun (int oIleX, int oIleY);
- void narysujSie ();
- void zmazSie ();
- };
- int Runner::podajX()
- {
- return x;
- }
- int Runner::podajY()
- {
- return y;
- }
- void Runner::podajPozycje(int& jakieX, int& jakieY)
- {
- jakieX=x;
- jakieY=y;
- }
- void Runner::ustawX(int jakieX)
- {
- if (jakieX < 1) x= 1;
- else if(jakieX>80) x= 80;
- else x=jakieX;
- if (jakieX > 100)
- x=40;
- }
- void Runner::ustawY(int jakieY)
- {
- if (jakieY < 1)x= 1;
- else if (jakieY>25)x= 25;
- else y=jakieY;
- if (jakieY>100)
- y=12;
- }
- void Runner::ustawZnak(char jakiZnak)
- {
- if( ( jakiZnak >= 33 && jakiZnak <= 47)
- ||(jakiZnak >= 58 && jakiZnak <= 64)
- ||(jakiZnak >= 91 && jakiZnak <= 96)
- ||(jakiZnak >= 123 && jakiZnak <= 126)
- ) kodZnaku = jakiZnak;
- else kodZnaku= '*';
- }
- void Runner::przesunX(int oIle)
- {
- zmazSie();
- x+=oIle;
- if (x<1) x=80;
- else if (x>80) x =1 ;
- narysujSie();
- }
- void Runner::przesunY(int oIle)
- {
- zmazSie();
- y+=oIle;
- if (x<1) x=25;
- else if (x>25) x =1 ;
- narysujSie();
- }
- void Runner::przesun(int oIleX, int oIleY)
- {
- przesunX(oIleX);
- przesunY(oIleY);
- }
- void Runner::narysujSie(void)
- {
- gotoxy(x, y);
- putch(kodZnaku);
- }
- void Runner::zmazSie(void)
- {
- gotoxy(x, y);
- putch(' ');
- }
- void Runner::ustawPozycje(int jakieX, int jakieY)
- {
- ustawX(jakieX);
- ustawY(jakieY);
- }
- int main()
- {
- int klawisz;
- Runner R;
- R.ustawX(140);
- R.ustawY(120);
- R.ustawZnak('*');
- wyczyscEkran();
- R.narysujSie();
- do
- {
- klawisz = wczytaj();
- cout<<klawisz<<endl;
- switch(klawisz)
- {
- case gora : cout<<"gora"<<endl;
- R.przesunY (-1) ; break;
- case dol : cout<<"dol"<<endl;
- R.przesunY (1); break;
- case lewo : cout<<"lewo"<<endl;
- R.przesunX (-1); break;
- case prawo : cout<<"prawo"<<endl;
- R.przesunX (1); break;
- }
- }while (klawisz=! esc);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement