Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

In your basic numbers game, players make either a “Straight” bet or a “Box” bet

ID: 3683397 • Letter: I

Question

In your basic numbers game, players make either a “Straight” bet or a “Box” bet with a 3-digit number. The winning combination is chosen at random. If the player’s number matches the winning number in any of the following ways, then the player wins the amount indicated, otherwise they lose. Type of Bet Description If your number is: Winning Numbers Payout Actual Odds Straight Exact order match 546 546 $600 to 1 1 in 1000 Box Match Any Order (3 different numbers) 546 546,564, 654,645, 456,465 $100 to 1 1 in 167 Match Any Order (1 duplicate number) 919 199,919,991 $200 to 1 1 in 333 Payouts shown are for the extinct, mob-run numbers game. Strange, but the payouts in the legalized, state-run games (e.g. “Cash 3”) are substantially lower. Note that there is only 1 way to win a straight bet but 6 different ways to win a box bet with 3 different numbers and 3 ways to win a box bet with 1 duplicate number This assignment is to create a class to simulate the numbers game. Your class will have 4 instance variables that store the bet type, bet amount, player’s number, and winning number, and a constructor to initialize them to values passed by the user. You may also have any additional instance variables you find necessary or useful. All instance variables must be type int, except for the bet type. Your class will also have two additional methods: 1. a method that returns the input data as a string 2. a method that compares the player’s number to the winning number and returns the amount won (or 0 if the player loses) All data are to be entered by the user. Output must include all the input values and must be neatly presented. Your program 6 times using this data: • Straight bet, $1, player number 123, winning number 123 • Straight bet, $1, player number 123, winning number 321 • Box bet, $1, player number 123, winning number 123 • Box bet, $1, player number 123, winning number 322 • Box bet, $1, player number 484, winning number 748 • Box bet, $1, player number 808, winning number 880.Although you are to use the above data, your numbers game class must work for all possible data values. However, you may assume that neither number will begin with zero.

Explanation / Answer

Program:

NumberGame.java

import java.util.Arrays;

class NumberGame {
  
int bt_amt,pn,wn;
String bt_type;

public NumberGame(int amount, int playerNum,int win, String type) {
bt_amt=amount;
pn=playerNum;
wn=win;
bt_type=type;
}

int getBetAmount() {
if(bt_type.equalsIgnoreCase("Straight"))
{
if(pn==wn)
return 600;
else
return 0;
}
else
{
char[] pnchars = ("" + pn).toCharArray();
char[] wnchars = ("" + wn).toCharArray();
if(pn==wn)
return 200;
else if(Arrays.equals(pnchars, wnchars))
return 100;
else
return 0;

}
  
}

String getPlayerNum() {
return bt_type+" bet, "+"$"+bt_amt+", "+"Player's number " +pn+","+" Winning Number:" +wn;
}
}

NumberGameTest.java

import javax.swing.JOptionPane ;
import java.util.Random;

public class NumberGameTest {
  
public static void main(String[] args) {

boolean straight = true;
String input = JOptionPane.showInputDialog("Which bet will you use? straight or box ");
input = JOptionPane.showInputDialog("How much are you putting in?");
int amount = Integer.parseInt(input);

//Asks user for numbers
input = JOptionPane.showInputDialog("Please input the player number");
int playerNum = Integer.parseInt(input);
Random winningNumber = new Random();
int winNum = winningNumber.nextInt(1000);
  
NumberGame bet = new NumberGame(amount, playerNum,winNum,input);
System.out.println(bet.getPlayerNum());
System.out.println( " Winning amount:" +bet.getBetAmount());
  
}
}

output:

300 bet, $100, Player's number 300, Winning Number:441
Winning amount:0

Straight bet, $1, player number 123, winning number 123

Winning amount:600

Straight bet, $1, player number 123, winning number 321

Winning amount:0

Box bet, $1, player number 123, winning number 123

Winning amount:200

Box bet, $1, player number 123, winning number 322

Winning amount:0

Box bet, $1, player number 484, winning number 748

Winning amount:100