Java: spinWheel

/* Language/Type: Java
Author:Marty Stepp (on 2020/04/15)

Write a static method called spinWheel that takes a Random object and an integer n as parameters and that simulates the spinning of a wheel until the number 20 comes up n times in a row. On the wheel are the numbers 20, 30, 40, 50, and 60 and each number should be equally likely to come up when the wheel is spun. Your method should report the individual spins as well as indicating how many times it takes to get n occurrences of 20 in a row. For example, below are two sample calls:
Random r = new Random();
spinWheel(r, 2);
spinWheel(r, 3);
The first call should produce two lines of output like this:
spins: 40, 40, 50, 20, 50, 50, 40, 20, 30, 40, 50, 20, 20
2 in a row after 13 spins
The second call should produce two lines of output like this:
spins: 50, 50, 50, 20, 40, 20, 40, 20, 20, 20
3 in a row after 10 spins
Notice that the spin values are separated by commas and that the method stops when it has seen n occurrences of the value 20 in a row. You are to exactly reproduce the format of these logs. You may assume that the value n passed to your method is greater than or equal to 1. */

Here’s my code, it doesn’t work. Please help.

import java.util.Random;

public static void main(String args) {

Random r = new Random();

int x = 2;
int y = 3;

spinWheel(r, x);
spinWheel(r, y);

}

public static void spinWheel(Random r, int n) {

int count = 0;
int counter = 0;
int spins = 0;
int number = 0;
    
number = r.nextInt(40) + 1 + 20;
number /= 10;
number *= 10;

System.out.print("spins: " + number);

if (number == 20) {
    counter++;
} else {
    counter = 0;
}

spins++;

while (counter != n) {

number = r.nextInt(40) + 1 + 20;
number /= 10;
number *= 10;
    
if (number == 20) {
    counter++;
 
} else {
    counter = 0;

}
    spins++;
    
    System.out.print(", " + number);
    
}

System.out.println();
System.out.println(n + " in a row after " + spins + " spins");

}

You need to tell us how the code “fails” for us to be able to help you.

I will observe that your code for calculating a spin value seems excessively complex:

number = r.nextInt(40) + 1 + 20;
number /= 10;
number *= 10;

I think it’s possible that r.nextInt(40) is not going to give you “equally likely results” as the assignment calls for.

The wheel values are 20,30,40,50,60 which is just an attempt to make a basic “0,1,2,3,4” sequence seem more complicated. The following should give you the desired result:

number = r.randInt(5) * 10 + 20;