Question: (Intro to Java help?) Define a class named RandomWalker. A RandomWalker object should keep track of its (x, y) location. All walkers start at the
(Intro to Java help?)
Define a class named RandomWalker. A RandomWalker object should keep track of its (x, y) location. All walkers start at the coordinates (0, 0). When a walker is asked to move, it randomly moves either left, right, up or down. Each of these four moves should occur with equal probability. The resulting behavior is known as a "random walk." (A 2-dimensional random walk example is pictured at right.)
Each RandomWalker object should have the following public methods. You may add whatever fields or methods you feel are necessary to implement these methods:
move() Instructs this random walker to randomly make one of the 4 possible moves (up, down, left, or right).
getX() Returns this random walker's current x-coordinate.
getY() Returns this random walker's current y-coordinate.
getSteps() Returns the number of steps this random walker has taken.
Random walks have interesting mathematical properties. For example, given infinitely many steps, a random walker approaches 100% chance of reaching a particular (x, y) coordinate. To learn more about random walks, visit http://mathworld.wolfram.com/RandomWalk.html .
Test your RandomWalker by running it with the TestRandomWalker test class, found on the Labs section of the course web site. The TestRandomWalker will run your random walker in a loop and animate its position as it moves.
import java.awt.*; public class TestRandomWalker { public static final int STEPS = 500; public static void main(String[] args) { RandomWalker walker = new RandomWalker(); // instantiate Walker object DrawingPanel panel = new DrawingPanel(500, 500); Graphics g = panel.getGraphics(); // advanced features -- center and zoom in the image panel.getGraphics().translate(250, 250); panel.getGraphics().scale(4, 4); // make the walker walk, and draw its movement int prevX = walker.getX(); // initialize Walker display int prevY = walker.getY(); for (int i = 1; i <= STEPS; i++) { g.setColor(Color.BLACK); g.drawLine(prevX, prevY, walker.getX(), walker.getY()); // update Walker display walker.move(); // move Walker 1 step prevX = walker.getX(); // update x value prevY = walker.getY(); // update y value g.setColor(Color.RED); g.drawLine(prevX, prevY, walker.getX(), walker.getY()); // update Walker display int steps = walker.getSteps(); // record Walker steps if (steps % 10 == 0) { System.out.println(steps + " steps"); } panel.sleep(100); } } } Step by Step Solution
There are 3 Steps involved in it
Get step-by-step solutions from verified subject matter experts
