Java Spielautomat
Habe ich Probleme mit einem Hausaufgaben problem für mein CS-Klasse. Ich soll eine slot-Maschine, und ich kann nicht weiter arbeiten, ich bekommen, dass der scanner nextLine-Methode springt über die Linie und hält, was da war, aber es wird nicht lassen Sie mich geben Sie alles und es wird einfach das Programm beendet. Ich habe auch aufteilen, diese Methode und stellen Sie es 30 Zeilen oder weniger wegen der Formatierung, der erforderlich ist, durch meinen professor. Ich habe auch zu halten eine laufende Summe der Gewinne, aber ich kann nicht herausfinden, wie es für den jackpot.
/**
* ProgrammingAssignment2.java
*
* @author Corey Goff
* @version March 2013
*/
import java.util.Random;
import java.util.Scanner;
/**
* This class simulates a slot machine.
*/
public class SlotMachine
{
/**
* This is the main method.
*
* @param args
*/
public static void main(String[] args)
{
Scanner keyboard = new Scanner(System.in);
Random random = new Random();
String cont = "n";
char answer;
int coin = 0;
int totalEntered = 0;
int a;
int b;
int c;
int n;
int amountWon = 0;
int dubs = coin * 2;
int trips = coin * 4;
while (cont.equals("n"))
{
a = random.nextInt(6);
b = random.nextInt(6);
c = random.nextInt(6);
n = random.nextInt(991) +10;
totalEntered += coin;
System.out.println("How much would you like to bet? ");
coin = keyboard.nextInt();
switch (a)
{
case 0:
System.out.println("Cherry");
break;
case 1:
System.out.println("Orange");
break;
case 2:
System.out.println("Plum");
break;
case 3:
System.out.println("Bell");
break;
case 4:
System.out.println("Melon");
break;
default:
System.out.println("Bar");
}
switch (b)
{
case 0:
System.out.println("Cherry");
break;
case 1:
System.out.println("Orange");
break;
case 2:
System.out.println("Plum");
break;
case 3:
System.out.println("Bell");
break;
case 4:
System.out.println("Melon");
break;
default:
System.out.println("Bar");
}
switch (c)
{
case 0:
System.out.println("Cherry");
break;
case 1:
System.out.println("Orange");
break;
case 2:
System.out.println("Plum");
break;
case 3:
System.out.println("Bell");
break;
case 4:
System.out.println("Melon");
break;
default:
System.out.println("Bar");
}
if (a != b && a != c && b != c)
{
System.out.println("You have won $0");
}
else if (a == b || a == c || b == c)
{
System.out.println("Congratulations, you have won $" + dubs);
amountWon += dubs;
}
else if (a == b && a == c && a != 0)
{
System.out.println("Congratulations, you have won $" + trips);
amountWon += trips;
}
else if (a == 0 && b == 0 && c == 0)
{
System.out.println("Congratulations! You have won the jackpot of $"
+ (coin * n));
}
System.out.println("Continue? y/n ");
cont = keyboard.nextLine();
}
}
}
- Warum sind Sie alle " down-voting? Atlest let OP wissen, wie er verbessern kann ist die Frage.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nachdem Sie die Anruf-Tastatur.nextInt(), müssen Sie die Tastatur.nextLine - () zum ausgeben der newline-Zeichen im Puffer. nextInt() liest bis er etwas findet, das nicht Teil einer int und lässt alles nach der int-sitzen in den Puffer.
Siehe diesen Beitrag für mehr Informationen: Lesen von Strings next() und nextLine - () Java
Um Ihren code zu arbeiten (mit kleinen änderungen):
Verwenden
keyboard.next();
stattkeyboard.nextLine();
ändern Ihre anfängliche cont = "n" cont = "y", und die while-Schleife überprüfen, ob (Forts.equals("y")).
Dies ist ein "quick fix", es gibt viele änderungen, die gemacht werden könnten, für Effizienz und zu halten mit den standards, aber ich werde nicht ins detail gehen.
Als für die unter 30-Zeilen-Anforderung, ich würde anfangen mit nur einen Zufallsgenerator zu erzeugen, alle 3 Früchte in eine Struktur. Fragen Sie sich, warum müssen Sie separate random-Generatoren für jede Frucht? Warum einen neuen Schalter pro Frucht? Ein random vs 3 random-Generatoren, erzeugt die gleiche Zufälligkeit für Ihre Früchte.