Question: In this lab you will develop a class that models a random walk and write two client programs that use the class. A random walk
In this lab you will develop a class that models a random walk and write two client programs that use the class. A random walk is basically a sequence of steps in some enclosed space where the direction of each step is random. The walk terminates either when a maximum number of steps has been taken or a step goes outside of the boundary of the space. Random walks are used to model physical phenomena such as the motion of molecules and economic phenomena such as stock prices.We will assume that the random walk takes place on a square grid with the point at the center. The boundary of the square will be a single integer that represents the maximum x and y coordinate for the current position on the square so for a boundary value of both the x and y coordinates can vary from to inclusive Each step will be one unit up one unit down, one unit to the left, or one unit to the right. No diagonal movement.The RandomWalk class will have the following instance data all type int: the x coordinate of the current position the y coordinate of the current position the maximum number of steps in the walk the number of steps taken so far in the walk the boundary of the square a positive integer the x and y coordinates of the position can vary between plus and minus this value Create a new file RandomWalk.java. Youll define the RandomWalk class incrementally testing each part as you go First declare the instance data as described above and add the following two constructors and toString method. RandomWalk int max, int edge Initializes the RandomWalk object. The maximum number of steps and the boundary are given by the parameters. The x and y coordinates and the number of steps taken should be set to RandomWalk int max, int edge, int startX, int startY Initializes the maximum number of steps, the boundary, and the starting position to those given by the parameters. String toString returns a String containing the number of steps taken so far and the current position The string should look something like: Steps: ; Position: Compile what you have so far then open the file TestWalk.java. This file will be used to test your RandomWalk methods. So far it prompts the user to enter a boundary, a maximum number of steps, and the x and y coordinates of a position. Add the following: Declare and instantiate two RandomWalk objects one with boundary maximum steps and centered at the origin use the two parameter constructor and the other with the values entered by the user. Print out each object. Note that you wont get any information about the boundary or maximum number of steps think about what your toString method does but thats ok Compile and run the program to make sure everything is correct so far. Next add the following method to the RandomWalk class: void takeStep This method simulates taking a single step either up down, left, or right. To take a step generate a random number with values say then use a switch statement to change the position one random value will represent going right, one left, and so on Your method should also increment the number of steps taken Add a for loop to TestWalk.java to have each of your RandomWalk objects take steps. Print out each object after each step so you can see what is going on Compile and run the program to make sure it is correct so far Now add to RandomWalk.java the following two methods. Each should be a single return statement that returns the value of a boolean expression. boolean moreSteps returns true if the number of steps taken is less than the maximum number; returns false otherwiseChapter : ObjectOriented Design boolean inBounds returns true if the current position is on the square include the boundary as part of the square; returns false otherwise. Add to the RandomWalk class a method named walk that has no parameters and returns nothing. Its job is to simulate a complete random walk. That is it should generate a sequence of steps as long the maximum number of steps has not been taken and it is still in bounds inside the square This should be a very simple loop while or do while you will need to call the methods takeStep, moreSteps, and inBounds Add to TestWalk.java a statement to instantiate a RandomWalk object with a boundary of and as the maximum number of steps. You may want to comment out most of the code currently in TestWalk especially the user input and the loop that takes five steps as the walk method will be easier to test on its own. The style of comment is useful for this. But dont delete that other code, as youll need it later in the lab. Then add a statement to have the object walk. Print the object after the walk. Compile and run the program. Run it more than once you should be able to tell by the value printed whether the object went out of bounds or whether it stopped because it reached the maximum number of steps.
Step by Step Solution
There are 3 Steps involved in it
1 Expert Approved Answer
Step: 1 Unlock
Question Has Been Solved by an Expert!
Get step-by-step solutions from verified subject matter experts
Step: 2 Unlock
Step: 3 Unlock
