import java.util.ArrayList; public class BingoHopper { private ArrayList hopper; private boolean[] called; private BingoBall currentBall; /** * The Hopper constructor should initialize * hopper and called. Fill hopper with all * the BingoBalls from B-1 to O-75, and called should be set * to all false. To avoid confusion, let called[1] set * to true mean that ball B-1 was called (i.e. 0 is * not used). * * finally, call nextBall() so that the first Ball * is selected and currentBall can be initialized. * @author Chris Thiel, ofmcap * @version May 1 2021 * */ public BingoHopper() { // your code here } /** * If there are balls remaining in the hopper, * nextBall removes a randomly chosen ball from hopper, * stores it into currentBall, and the correct element of * the called array is set to true. */ public void nextBall() { //your code here } /** * remaining * @return the number of balls remaining in the hopper */ public int remaining() { return hopper.size(); } /** * called * @return the number of balls that have been called */ public int called() { //your code here } public BingoBall getCurrentBall() { return currentBall; } public String currentBall() { return currentBall.toString(); } public boolean wasCalled(int number) { return called[number]; } }