38 lines
1.5 KiB
Java
38 lines
1.5 KiB
Java
import java.util.Random;
|
|
import java.util.Scanner;
|
|
|
|
public class RandomWalk {
|
|
|
|
public static void main(String[] args) {
|
|
Scanner console = new Scanner(System.in);
|
|
Random random = new Random();
|
|
System.out.print("Enter size of grid: ");
|
|
int gridSize = 0;
|
|
if (!console.hasNextInt()) {
|
|
throw new IllegalArgumentException("Not a number");
|
|
} else {
|
|
gridSize = Math.abs(console.nextInt());
|
|
}
|
|
StdDraw.setXscale(-gridSize, gridSize); // Opsætning af StdDraw, sætter størelse på felt til -gridSize, gridSize i x og y.
|
|
StdDraw.setYscale(-gridSize, gridSize);
|
|
StdDraw.setPenRadius(2.0 / (gridSize*4));
|
|
int x = 0;
|
|
int y = 0;
|
|
int numSteps = 0;
|
|
while (
|
|
x >= -gridSize && x <= gridSize && y >= -gridSize && y <= gridSize // Mens punktet er inde for -gridSize, gridSize i både x og y.
|
|
) {
|
|
int direction = random.nextInt(4); // Random værdi (0, 1, 2 eller 3). 0 = op. 1 = ned. 2 = venstre. 3 = højre.
|
|
if (direction >= 2) {
|
|
x += (direction == 3 ? 1 : -1); // Bevæg sig venstre eller højre
|
|
} else {
|
|
y += (direction == 1 ? 1 : -1); // Bevæg sig op eller ned
|
|
}
|
|
System.out.println("Position: (" + x + ", " + y + ")");
|
|
numSteps++;
|
|
StdDraw.point(x,y);
|
|
}
|
|
System.out.println("Total number of steps: " + numSteps);
|
|
}
|
|
}
|