Garusek

runner

Apr 26th, 2016
111
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.37 KB | None | 0 0
  1. #include <iostream>
  2. #include <conio.h>
  3. #include "windows.h"
  4.  
  5. using namespace std;
  6.  
  7.  
  8.  
  9.  
  10. void gotoxy(int x, int y)
  11. {
  12. COORD c;
  13. c.X = x-1;
  14. c.Y = y-1;
  15. SetConsoleCursorPosition (GetStdHandle(STD_OUTPUT_HANDLE),c);
  16. }
  17.  
  18. enum K
  19. {
  20. kGora=72,
  21. kDol=80,
  22. kLewo=75,
  23. kPrawo=77,
  24. kEnter=13,
  25. kEsc=27
  26. };
  27.  
  28. int Wklawisz(void)
  29. {
  30. int znak=getch();
  31. return znak;
  32.  
  33. }
  34. void wyczyscekran()
  35. {
  36. system ("cls");
  37. }
  38.  
  39. int NapiszZnak(int x, int y, char c)
  40. {
  41. gotoxy(x,y);
  42. putch (c);
  43. }
  44.  
  45. class Runner
  46. {
  47. private:
  48. int x;
  49. int y;
  50. char kodZnaku;
  51. public:
  52. void narysujSie();
  53. void zmazSie();
  54.  
  55. void ustawPozycje(int jakieX, int jakieY);
  56.  
  57. void podajpozycje();
  58. void ustawX(int jakieX)
  59. {
  60.  
  61. if (jakieX>70)
  62. {
  63. if (jakieX>100)
  64. x=40;
  65. else x=69;
  66. }
  67. else
  68. x=jakieX;
  69. };
  70. void ustawY(int jakieY)
  71. {
  72. if (jakieY>20)
  73. {
  74. if (jakieY>100)
  75. y=12;
  76. else y=19;
  77. }
  78. else
  79. y=jakieY;
  80. };
  81. void ustawZ(int jakiZ)
  82. {
  83. int x=jakiZ;
  84. if ((x>33) && (x<47) || (x>58) && (x<64) || (x>91) && (x<96) || (x>123) && (x<126))
  85. kodZnaku=jakiZ;
  86. else
  87. kodZnaku='*';
  88. };
  89. void przesunY(int t)
  90. {
  91. if ((y-t>0) && (y-t<20))
  92. y=y-t;
  93. };
  94. void przesunX(int t)
  95. {
  96. if((x-t>0) && (x-t<70))
  97. x=x-t;
  98. };
  99.  
  100. void podajX();
  101. void podajY();
  102. };
  103.  
  104. void Runner::ustawPozycje(int jakieX,int jakieY)
  105. {
  106. x=jakieX;
  107. y=jakieY;
  108. };
  109.  
  110. void Runner::narysujSie()
  111. {
  112. NapiszZnak(x,y,kodZnaku);
  113. };
  114. void Runner::zmazSie()
  115. {
  116. NapiszZnak(x,y,' ');
  117. };
  118. int main(int argc,char** argv)
  119. {
  120. int klawisz;
  121. Runner R;
  122.  
  123. R.ustawX(69);
  124. R.ustawY(40);
  125. R.ustawZ('*');
  126.  
  127. wyczyscekran();
  128.  
  129. do{
  130. R.narysujSie();
  131. klawisz=Wklawisz();
  132. R.zmazSie();
  133.  
  134. switch(klawisz)
  135. {
  136. case kGora : R.przesunY(1);
  137. break;
  138. case kDol: R.przesunY(-1);
  139. break;
  140. case kLewo: R.przesunX(1);
  141. break;
  142. case kPrawo: R.przesunX(-1);
  143. break;
  144. }
  145. }while(klawisz!=kEsc);
  146.  
  147. return 0;
  148. }
Add Comment
Please, Sign In to add comment