I'm creating a slot machine with four possible outcomes. If there are two matches, message2 prints; three matches, message3 prints; four matches, message4 prints.
I understand not all of the code is efficient, but what I'm trying to get at is to condense (or replace) my nested if statements. How would you have done it?
import java.util.Scanner ;
import java.util.Random ;
/**
*Description: Slot machine simulator.
*
* @author KO
*/
public class SlotMachine {
public static void main(String [] args) {
//delcaring variables
int repeat = 0 ;
//welcoming
System.out.println("Welcome to the slot machine sim!") ;
//loop for slot machine
do {
//declaring variables
double bet = 0 ;
int i = 0 ;
int select = 0 ;
String message0 = null ;
String message2 = null ;
String message3 = null ;
String message4 = null ;
String[] outcome = new String[4] ;
String[] possible = {"CHERRIES", "ORANGES", "PLUMS", "BARS" } ;
Random random = new Random() ;
Scanner keyboard = new Scanner(System.in) ;
//ask for bet
System.out.println("\nHow much are you betting?") ;
bet = keyboard.nextDouble() ;
//set messages
message0 = "\n\nZero matches. You won $0." ;
message2 = "\n\nTwo matches. You won $" + (bet * 2) ;
message3 = "\n\nThree matches. You won $" + (bet * 3) ;
message4 = "\n\nFour matches. You won $" + (bet * 3) ;
//creating white space
System.out.println(" ") ;
//randomizer
for (i = 0 ; i < 4 ; i++) {
select = random.nextInt(possible.length) ;
outcome[i] = possible[select] ;
}
//print outcome
for (i = 0 ; i < 4 ; i++) {
System.out.print(outcome[i] + " ") ;
}
//compare
if (outcome[0].equals(outcome[1])) {
if (outcome[0].equals(outcome[2])) {
if (outcome[0].equals(outcome[3])) {
System.out.println(message4);
} else {
System.out.println(message3) ;
}
} else if (outcome[0].equals(outcome[3])) {
System.out.print(message3) ;
} else {
System.out.println(message2) ;
}
} else if (outcome[0].equals(outcome[2])) {
if (outcome[0].equals(outcome[3])) {
System.out.println(message3) ;
} else {
System.out.println(message2) ;
}
} else if (outcome[0].equals(outcome[3])) {
System.out.println(message2) ;
} else if (outcome[1].equals(outcome[2])) {
if (outcome[1].equals(outcome[3])) {
System.out.print(message3) ;
} else {
System.out.println(message2) ;
}
} else if (outcome[1].equals(outcome[3])) {
System.out.println(message2);
} else if (outcome[2].equals(outcome[3])) {
System.out.println(message2) ;
} else {
System.out.println(message0) ;
}
//restart application
System.out.println("\n\nWould you like to play again? (1 or 2)"
+ "\n1. Yes"
+ "\n2. No") ;
repeat = keyboard.nextInt() ;
} while (repeat == 1) ;
}
}
Aucun commentaire:
Enregistrer un commentaire