Advertisement
Garusek

runnerv3

Apr 26th, 2016
96
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.28 KB | None | 0 0
  1. #include <conio.h>
  2. #include "windows.h"
  3.  
  4. void gotoxy(int x, int y)
  5. {
  6.     COORD c;
  7.     c.X = x -1;
  8.     c.Y = y -1;
  9.     SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),c);
  10. }
  11. //k - klawisz
  12. enum kodyKlawiszy{kgora=72, kdol=80, klewo=75, kprawo=77, kenter=13, kesc=27};
  13.  
  14. int wczytajKlawisz(void)
  15. {
  16.         int Klawisz = getch();
  17.         return Klawisz;
  18. }
  19.  
  20. void czyscEkran()
  21. {
  22.     system("cls");
  23. }
  24.  
  25. void napiszZnak (int x, int y, char c)
  26. {
  27.     gotoxy (x,y);
  28.     putch(c);
  29. }
  30.  
  31. class Runner
  32. {
  33.     private:                                //atrybuty
  34.         int x;
  35.         int y;
  36.         char kodZnaku;                      //znak Runnera
  37.     public:                                 //metody dostepowe
  38.         void ustawX (int jakieX);           //ustawiająca
  39.         void ustawY (int jakieY);
  40.         void ustawPozycie(int jakieX, int jakieY);
  41.         void ustawZnak (char jakiZnak);
  42.  
  43.         int podajX() {return x;}                       //odczytująca
  44.         int podajY() {return y;}
  45.         void podajPozycje(int& jakieX, int& jakieY) {jakieX=x; jakieY=y;}
  46.         char podajZnak() {return kodZnaku;}
  47.  
  48.         void przesunX(int oIle);            //zmieniające
  49.         void przesunY(int oIle);
  50.         void przesun (int oIleX, int oIleY);//jednoczesnie wszystko
  51.  
  52.         void rysujsie(void);
  53.         void zmazsie(void);
  54. };
  55.  
  56.  
  57. void Runner::ustawX(int jakieX)
  58. {
  59.     if (jakieX < 1)
  60.         x = 1;
  61.     else
  62.         if (jakieX>80)
  63.             x = 80;
  64.         else x = jakieX;
  65.  
  66.     if (jakieX > 100)
  67.         x = 40;
  68. }
  69. void Runner::ustawY(int jakieY)
  70. {
  71.     if (jakieY < 1)
  72.         y = 1;
  73.     else
  74.         if (jakieY>25)
  75.             y = 25;
  76.         else y = jakieY;
  77.  
  78.     if (jakieY > 100)
  79.         y = 12;
  80. }
  81.  
  82. void Runner::ustawPozycie(int jakieX, int jakieY)
  83. {
  84.     ustawX(jakieX);
  85.     ustawY(jakieY);
  86. }
  87.  
  88. void Runner::ustawZnak(char jakiZnak)
  89. {
  90.     jakiZnak = getch();
  91.     if  ((33<=jakiZnak&&jakiZnak<=47)  ||
  92.         (58<=jakiZnak&&jakiZnak<=64)  ||
  93.         (91<=jakiZnak&&jakiZnak<=96) ||
  94.         (123<=jakiZnak&&jakiZnak<=126))
  95.            kodZnaku=jakiZnak;
  96.     else kodZnaku = '*';
  97. }
  98. void Runner:: przesunX (int oIle)
  99. {
  100.     zmazsie();
  101.  
  102.     x+= oIle;
  103.  
  104.         if(x<1) x=80;
  105.     else if (x>80) x=1;
  106.  
  107.     rysujsie();
  108. }
  109. void Runner:: przesunY(int oIle)
  110. {
  111.     zmazsie();
  112.  
  113.     y+= oIle;
  114.  
  115.         if(y<1) y=25;
  116.     else if (y>25) y=1;
  117.  
  118.     rysujsie();
  119. }
  120. void Runner::przesun(int oIleX, int oIleY)
  121. {
  122.     przesunX(oIleX);
  123.     przesunY(oIleY);
  124. }
  125. void Runner::rysujsie(void)
  126. {
  127.     gotoxy (x,y);
  128.     putch(kodZnaku);
  129. }
  130. void Runner::zmazsie (void)
  131. {
  132.     gotoxy (x,y);
  133.     putch(' ');
  134. }
  135.  
  136. int main ( int argc, char** argv)
  137. {
  138.     int klawisz;
  139.     Runner R;
  140.  
  141.     R.ustawX(140);
  142.     R.ustawY(120);
  143.     R.ustawZnak('#');
  144.  
  145.     czyscEkran();
  146.  
  147.     R.rysujsie();
  148.     do
  149.     {
  150.         klawisz = wczytajKlawisz();
  151.         switch(klawisz){
  152.  
  153.         case kgora:     R.przesunY(-1);
  154.                         break;
  155.  
  156.         case kdol:      R.przesunY(1);
  157.                         break;
  158.  
  159.  
  160.         case klewo:     R.przesunX(-1);
  161.                         break;
  162.  
  163.  
  164.         case kprawo:    R.przesunX(1);
  165.                         break;
  166.         }
  167.     }while(klawisz != kesc);
  168.     return 0;
  169. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement