Java代写:CS455 RandomWalk

Requirement

In this request you will write a graphics-based program to do a random walk, sometimes also known as a drunkard’s walk.

This random walk simulates the wandering of an intoxicated person on a square street grid.

The drunkard will start out in the middle of the grid and will randomly pick one of the four compass directions, and take a step in that direction, then another step from that new location in a random direction, etc.

This request will give you practice with creating classes, using loops, using the java library for random number generation, doing console-based IO, and drawing to a graphics window. Also you’ll get practice in general program development.

Analysis

Randow Walk,即随机游走问题,类似布朗运动,物体在下一刻走动的方向完全是随机的。

本题利用随机数生成器来模拟下一刻的方位。框架使用java的awt包实现了UI部分,我们只需要将随机算法加入到提供的框架中。

解题的关键是了解随机数生成器的用法,根据提供的框架,找到对应函数入口,根据给定的测试集进行调试即可。

Tip

从测试函数入口入手

1
2
3
4
5
private void testTranslate(Impoint loc, int deltaX, int deltaY) {
...
ImPoint p2 = loc.translate(deltaX, deltaY);
...
}

因此我们需要实现ImPoint类,以及translate方法,核心代码如下

1
2
3
4
5
6
7
8
9
10
11
12
class ImPoint {
private int x;
private int y;
...
public Impoint translate(int deltaX, int deltaY) {
Random r = new Random();
int x = deltaX + nextInt(2) - 1;
int y = deltaY + nextInt(2) - 1;
return new Impoint(x, y);
}
...
}