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);
    }
}
