Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <conio.h>
- #include "windows.h"
- void gotoxy(int x, int y)
- {
- COORD c;
- c.X = x -1;
- c.Y = y -1;
- SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),c);
- }
- //k - klawisz
- enum kodyKlawiszy{kgora=72, kdol=80, klewo=75, kprawo=77, kenter=13, kesc=27};
- int wczytajKlawisz(void)
- {
- int Klawisz = getch();
- return Klawisz;
- }
- void czyscEkran()
- {
- system("cls");
- }
- void napiszZnak (int x, int y, char c)
- {
- gotoxy (x,y);
- putch(c);
- }
- class Runner
- {
- private: //atrybuty
- int x;
- int y;
- char kodZnaku; //znak Runnera
- public: //metody dostepowe
- void ustawX (int jakieX); //ustawiająca
- void ustawY (int jakieY);
- void ustawPozycie(int jakieX, int jakieY);
- void ustawZnak (char jakiZnak);
- int podajX() {return x;} //odczytująca
- int podajY() {return y;}
- void podajPozycje(int& jakieX, int& jakieY) {jakieX=x; jakieY=y;}
- char podajZnak() {return kodZnaku;}
- void przesunX(int oIle); //zmieniające
- void przesunY(int oIle);
- void przesun (int oIleX, int oIleY);//jednoczesnie wszystko
- void rysujsie(void);
- void zmazsie(void);
- };
- 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)
- y = 1;
- else
- if (jakieY>25)
- y = 25;
- else y = jakieY;
- if (jakieY > 100)
- y = 12;
- }
- void Runner::ustawPozycie(int jakieX, int jakieY)
- {
- ustawX(jakieX);
- ustawY(jakieY);
- }
- void Runner::ustawZnak(char jakiZnak)
- {
- jakiZnak = getch();
- if ((33<=jakiZnak&&jakiZnak<=47) ||
- (58<=jakiZnak&&jakiZnak<=64) ||
- (91<=jakiZnak&&jakiZnak<=96) ||
- (123<=jakiZnak&&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;
- rysujsie();
- }
- void Runner:: przesunY(int oIle)
- {
- zmazsie();
- y+= oIle;
- if(y<1) y=25;
- else if (y>25) y=1;
- rysujsie();
- }
- void Runner::przesun(int oIleX, int oIleY)
- {
- przesunX(oIleX);
- przesunY(oIleY);
- }
- void Runner::rysujsie(void)
- {
- gotoxy (x,y);
- putch(kodZnaku);
- }
- void Runner::zmazsie (void)
- {
- gotoxy (x,y);
- putch(' ');
- }
- int main ( int argc, char** argv)
- {
- int klawisz;
- Runner R;
- R.ustawX(140);
- R.ustawY(120);
- R.ustawZnak('#');
- czyscEkran();
- R.rysujsie();
- do
- {
- klawisz = wczytajKlawisz();
- switch(klawisz){
- case kgora: R.przesunY(-1);
- break;
- case kdol: R.przesunY(1);
- break;
- case klewo: R.przesunX(-1);
- break;
- case kprawo: R.przesunX(1);
- break;
- }
- }while(klawisz != kesc);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement