Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package randomwalk;
- import java.lang.Math;
- import java.util.Random;
- public class RandomWalk {
- //Instance Data
- private int x;
- private int y;
- private int MaxNumOfStep;
- private int NumOfStepsTaken;
- private int Boundry;
- private int maxDistance;
- //Constructor
- public RandomWalk(int max, int edge) {
- x = 0;
- y = 0;
- MaxNumOfStep = max;
- NumOfStepsTaken = 0;
- Boundry = edge;
- maxDistance = max(x, y);
- }
- public RandomWalk(int max, int edge, int startX, int startY) {
- x = startX;
- y = startY;
- MaxNumOfStep = max;
- NumOfStepsTaken = 0;
- Boundry = edge;
- maxDistance = max(x, y);
- }
- //Constructor ends
- //Method
- public int getmaxDistance() {
- return maxDistance;
- }
- private int max(int num1, int num2) {
- int tempnum = 0;
- if (Math.abs(num1) > Math.abs(num2)) {
- tempnum = (Math.abs(num1));
- } else {
- if (Math.abs(num1) < Math.abs(num1)) {
- tempnum = (Math.abs(num2));
- }
- }
- return tempnum;
- }
- public int getX() {
- return x;
- }
- public int getY() {
- return y;
- }
- public String toString() {
- String s;
- s = "Steps: " + NumOfStepsTaken + "; Position: " + "(" + x + "," + y + ")";
- return s;
- }
- public void takeStep() {
- Random rand = new Random();
- int direction = rand.nextInt(4);
- switch (direction) {
- //up
- case 0:
- y = y + 1;
- break;
- //down
- case 1:
- y = y - 1;
- break;
- //left
- case 2:
- x = x - 1;break;
- //right
- case 3:
- x = x + 1;
- break;
- default:
- x = x + 1;
- break;
- }
- NumOfStepsTaken = NumOfStepsTaken + 1;
- }
- public boolean moreSteps() {
- if (NumOfStepsTaken < MaxNumOfStep) {
- return true;
- } else {
- return false;
- }
- }
- public boolean inBounds() {
- if (Math.abs(x) < Boundry && Math.abs(y) < Boundry) {
- return true;
- } else {
- return false;
- }
- }
- public void walk() {
- int MaxDist = max(x, y);
- while (inBounds() && moreSteps()) {
- takeStep();
- System.out.println(toString());
- if (max(x, y) > MaxDist) {
- MaxDist = max(x, y);
- }
- }
- System.out.println("The Maximum Distance: " + MaxDist);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement