Advertisement
Guest User

Untitled

a guest
Apr 21st, 2019
154
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.51 KB | None | 0 0
  1. #include "Hare.h"
  2. #include "Path.h"
  3.  
  4. int random(int);
  5.  
  6. Hare::Hare(){
  7. avatar = 'H'
  8. energyLevel = MAX_ENERGY;
  9. currenPosition = 0;
  10. down = false;
  11. }
  12.  
  13. char Hare::getAvatar() { return avatar; }
  14. int Hare::getEnergyLevel() { return energyLevel;}
  15. int Hare::getPosition() { return currentPosition;}
  16. bool Hare::isDown() { return down;}
  17.  
  18. void Hare::setEnergyLevel(int level)
  19. {
  20. energyLevel = (level < 0) ? 0 : level;
  21.  
  22. if (energyLevel == 0)
  23. down = true;
  24. }
  25.  
  26. void Hare::setPosition(int pos)
  27. {
  28. if (pos < 0) {
  29. currentPosition = 0;
  30. } else if (pos > Path::TOP_POS){
  31. currentPosition = Path::TOP_POS;
  32. } else {
  33. currentPosition = pos;
  34. }
  35.  
  36. }
  37.  
  38. int Hare::updatePositon(){
  39.  
  40. if (down)
  41. return currentPosition;
  42.  
  43. int r, steps, currentPace;
  44. //Compute random number between 1 and 10
  45.  
  46. r = random(10) + 1;
  47.  
  48. if (r<= 2) { //sleep
  49. steps = 0;
  50. currentPace =0;
  51. } else if (r<= 4) { //big hop
  52. steps = 9;
  53. currentPace =3;
  54. } else if ( r <= 5){ //big slip
  55. steps = -12;
  56. currentPace =0;
  57. } else if ( r <= 8){ //small hop
  58. steps = 1;
  59. currentPace =1;
  60. } else {
  61. steps =-2;
  62. currentPace = 0;
  63. }
  64.  
  65.  
  66. //decrease energy level according to current pace
  67. setEnergyLevel(energyLevel- currentPace);
  68.  
  69. //if runner not down, update position by current number of steps
  70. if (!down)
  71. setPosition(currentPosition + steps);
  72.  
  73. return currentPosition;
  74. }
  75.  
  76. void Hare::collide()
  77. {
  78. setEnergyLevel(energyLevel(-3));
  79. }
  80.  
  81. void Hare::eatSnack(){
  82. setEnergyLevel(MAX_ENERGY);
  83. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement