Advertisement
Guest User

Untitled

a guest
Jun 27th, 2017
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.73 KB | None | 0 0
  1. package randomwalk;
  2.  
  3. import java.lang.Math;
  4. import java.util.Random;
  5.  
  6. public class RandomWalk {
  7.  
  8. //Instance Data
  9. private int x;
  10. private int y;
  11. private int MaxNumOfStep;
  12. private int NumOfStepsTaken;
  13. private int Boundry;
  14. private int maxDistance;
  15.  
  16. //Constructor
  17. public RandomWalk(int max, int edge) {
  18. x = 0;
  19. y = 0;
  20. MaxNumOfStep = max;
  21. NumOfStepsTaken = 0;
  22. Boundry = edge;
  23. maxDistance = max(x, y);
  24. }
  25.  
  26. public RandomWalk(int max, int edge, int startX, int startY) {
  27. x = startX;
  28. y = startY;
  29. MaxNumOfStep = max;
  30. NumOfStepsTaken = 0;
  31. Boundry = edge;
  32. maxDistance = max(x, y);
  33. }
  34. //Constructor ends
  35.  
  36. //Method
  37. public int getmaxDistance() {
  38. return maxDistance;
  39. }
  40.  
  41. private int max(int num1, int num2) {
  42. int tempnum = 0;
  43. if (Math.abs(num1) > Math.abs(num2)) {
  44. tempnum = (Math.abs(num1));
  45. } else {
  46. if (Math.abs(num1) < Math.abs(num1)) {
  47. tempnum = (Math.abs(num2));
  48. }
  49. }
  50. return tempnum;
  51. }
  52.  
  53. public int getX() {
  54. return x;
  55. }
  56.  
  57. public int getY() {
  58. return y;
  59. }
  60.  
  61. public String toString() {
  62. String s;
  63. s = "Steps: " + NumOfStepsTaken + "; Position: " + "(" + x + "," + y + ")";
  64. return s;
  65. }
  66.  
  67. public void takeStep() {
  68. Random rand = new Random();
  69.  
  70. int direction = rand.nextInt(4);
  71.  
  72. switch (direction) {
  73. //up
  74. case 0:
  75. y = y + 1;
  76. break;
  77. //down
  78. case 1:
  79. y = y - 1;
  80. break;
  81. //left
  82. case 2:
  83. x = x - 1;break;
  84. //right
  85. case 3:
  86. x = x + 1;
  87. break;
  88. default:
  89. x = x + 1;
  90. break;
  91. }
  92. NumOfStepsTaken = NumOfStepsTaken + 1;
  93. }
  94.  
  95. public boolean moreSteps() {
  96. if (NumOfStepsTaken < MaxNumOfStep) {
  97. return true;
  98. } else {
  99. return false;
  100. }
  101. }
  102.  
  103. public boolean inBounds() {
  104. if (Math.abs(x) < Boundry && Math.abs(y) < Boundry) {
  105. return true;
  106. } else {
  107. return false;
  108. }
  109. }
  110.  
  111. public void walk() {
  112. int MaxDist = max(x, y);
  113. while (inBounds() && moreSteps()) {
  114. takeStep();
  115. System.out.println(toString());
  116. if (max(x, y) > MaxDist) {
  117. MaxDist = max(x, y);
  118. }
  119. }
  120. System.out.println("The Maximum Distance: " + MaxDist);
  121. }
  122. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement