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;
- class Runner
- {
- private:
- int x; int y; char kodZnaku;
- public:
- Runner (int jakieX=40, int jakieY=12, char jakiZnak='*');
- void ustawX(int jakieX); // ustawiajace
- void ustawY(int jakieY); //
- void ustawPozycje (int jakieX, int jakieY);
- void ustawZnak(char jakiZnak);
- int podajX(); // oczytujace
- int podajY();
- void podajPozycje(int& jakieX , int& jakieY);
- char podajZnak();
- void przesunX(int oIle); // zmieniajace
- void przesunY(int oIle);
- void przesun(int oIleX, int oIleY);
- void narysujsie()
- {
- napiszznak(x, y, kodZnaku);
- }
- void zmazsie()
- {
- gotoxy (x ,y);
- putch(' ');
- }
- void napiszznak(int x, int y, char c)
- {
- gotoxy(x, y);
- putch(c);
- }
- void gotoxy(int x, int y)
- {
- COORD c;
- c.X = x-1;
- c.Y = y-1;
- SetConsoleCursorPosition (GetStdHandle(STD_OUTPUT_HANDLE), c);
- }
- int oileX()
- {
- int oIlex = getch();
- return oIlex;
- }
- int oIleY()
- {
- int oIley = getch();
- return oIley;
- }
- };
- Runner::Runner(int jakieX, int jakieY, char jakiZnak)
- {
- ustawX (jakieX);
- ustawY (jakieY);
- ustawZnak (jakiZnak);
- }
- /*
- void Runner::napiszznak(int x, int y, char c)
- {
- gotoxy(x, y);
- putch(c);
- }
- void Runner::gotoxy(int x, int y)
- {
- COORD c;
- c.X = x-1;
- c.Y = y-1;
- SetConsoleCursorPosition (GetStdHandle(STD_OUTPUT_HANDLE), c);
- }
- */
- int wczytajklawisz()
- {
- int key = getch();
- return key;
- }
- char jakiZnak()
- {
- char jakiZnak= getch();
- return jakiZnak;
- }
- enum kodklawiszy
- {
- gora = 72,
- prawo = 77,
- dol = 80,
- lewo = 75,
- enter = 13,
- esc = 27
- };
- void wyczyscekran()
- {
- system("cls");
- }
- 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::ustawX (int jakieX)
- {
- int x;
- if(jakieX<1) x= 1;
- else if(jakieX>80)x= 80;
- else x=jakieX;
- if(jakieX>100)
- x=40;
- }
- void Runner::ustawY (int jakieY)
- {
- int y;
- if(jakieY<1)y= 1;
- else if(jakieY>80)y= 80;
- else y=jakieY;
- if(jakieY>100)
- y=40;
- }
- void Runner::ustawPozycje(int jakieX, int jakieY)
- {
- ustawX(jakieX);
- ustawY(jakieY);
- }
- int Runner::podajX()
- {
- return x;
- }
- int Runner::podajY ()
- {
- return y;
- }
- void Runner::podajPozycje (int& jakieX, int& jakieY)
- {
- jakieX=x;
- jakieY=y;
- }
- char Runner::podajZnak()
- {
- return kodZnaku;
- }
- void Runner::przesunX(int oIle)
- {
- zmazsie();
- x= x+oIle;
- if(x < 1 ) x = 80;
- else if (x > 80) x=1;
- narysujsie();
- }
- void Runner::przesunY(int oIle)
- {
- zmazsie();
- y= y+oIle;
- if(y < 1 ) y = 80;
- else if (y > 80) y=1;
- narysujsie();
- }
- /*
- void Runner::przesun (int oIlex, int oIleY)
- {
- przesunX(oIleX);
- przesunY(oIleY);
- }
- */
- int main (int argc, char** argv)
- {
- int klawisz;
- Runner R(140,120,'#');
- wyczyscekran();
- R.narysujsie();
- do
- {
- klawisz = wczytajklawisz();
- switch (klawisz)
- {
- case gora : R.przesunY (-1) ;
- break;
- case dol : R.przesunY (+1) ;
- break;
- case lewo : R.przesunX (-1) ;
- break;
- case prawo: R.przesunX (+1) ;
- break;
- }
- }while (klawisz != esc);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement