Java-Lotterie-Array-Programm
Ich entwerfe ein Programm für meine Klasse, die simulieren soll, ein Lotterie-Spiel. Ich soll die Entwicklung einer Methode, die generiert zufällige Lottozahlen, eine Methode, die fragt und speichert die vom Benutzer für Ihre Zahl-Entscheidungen, eine Methode, vergleicht die arrays zu finden, wie viele zahlen gleich sind, und dann soll ich rufen Sie alle zurück an die main-Methode, und erstellen Sie die Ausgabe-Anweisung, die enthält einige if-Anweisungen, die bestimmen, welcher Preis für die jeweilige Anzahl der Treffer.
Hier ist, was ich bisher
import java.util.*;
public class LotteryGame {
/**
The main method is the program's starting point
*/
public static void main(String[] args){
int NUM_DIGITS = 5;
int[] userDigits = new int[5];
int[] lotteryNumbers = new int[5];
int sameNum;
generateNumbers(lotteryNumbers);
getUserData(userDigits);
compareArrays();
System.out.println("Lottery numbers: " + lotteryNumbers[0] + " " +
lotteryNumbers[1] + " " + lotteryNumbers[2] + " " + lotteryNumbers[3] +
" " + lotteryNumbers[4] + " ");
System.out.println("Player numbers: " + userDigits[0] + " " + userDigits[1] + " " + userDigits[2] + " " + userDigits[3] + " " + userDigits[4] + " ");
System.out.println("Number of matching digits: " + sameNum);
if (sameNum == 5){
System.out.println("GRAND PRIZE WINNER - $5 MILLION!!");
}
if (sameNum == 4){
System.out.println("SUPER PRIZE WINNER - $500,000!!");
}
if (sameNum == 3){
System.out.println("GOOD PRIZE WINNER - $5,000!!");
}
if (sameNum == 2){
System.out.println("NICE PRIZE WINNER - $500!!");
}
if (sameNum == 1){
System.out.println("WINNER - $5!!");
}
if (sameNum ==0){
System.out.println("No matching numbers - better luck next time");
}
}
public static int generateNumbers(int [] lotteryNumbers){
Random randNum = new Random();
lotteryNumbers[0] = randNum.nextInt(10);
lotteryNumbers[1] = randNum.nextInt(10);
lotteryNumbers[2] = randNum.nextInt(10);
lotteryNumbers[3] = randNum.nextInt(10);
lotteryNumbers[4] = randNum.nextInt(10);
return lotteryNumbers[4];
}
public static int getUserData (int [] userDigits){
Scanner keyboard = new Scanner(System.in);
System.out.print("Enter digit 1: ");
userDigits[0] = keyboard.nextInt();
System.out.print("Enter digit 2: ");
userDigits[1] = keyboard.nextInt();
System.out.print("Enter digit 3: ");
userDigits[2] = keyboard.nextInt();
System.out.print("Enter digit 4: ");
userDigits[3] = keyboard.nextInt();
System.out.print("Enter digit 5: ");
userDigits[4] = keyboard.nextInt();
return userDigits[4];
}
public static int compareArrays (int [] userDigits,
int [] lotteryNumbers){
int sameNum = 0;
for (int i = 0; i < 5; i++){
for (int x = 0; x < 5; x++){
if (lotteryNumbers[i] == userDigits[x]){
sameNum++;
}
return sameNum;
}
return sameNum;
}
return sameNum;
}
}
Ich bin ganz neu arrays (und Java auf das) also meine Probleme sind in meinem Rendite - /call-Anweisungen. Bitte entschuldigen Sie meine spacey coding style und jede eklatante Fehler, die ich gemacht habe. Irgendwelche Tipps,Ratschläge, Lösungen, oder wenn Sie bemerken, dass etwas falsch mit dem was ich habe lasst es mich bitte wissen. Danke!
- So haben Sie keine der Antworten für sinnvoll?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Beachten Sie, dass randNum.nextInt(10) geben Ihnen die Lotto-zahlen im Bereich von 0 bis 9. Sie können eine for-Schleife verwenden, um ordnen Sie die Zufallszahlen der lotteryNumbers array einfacher. Auch sollte man darauf achten, dass die random-Lotto-zahlen nicht wiederholen.
In Ihrem compareArrays-Funktion, legen Sie einfach eine Rückkehr sameNum Anruf nach der äußersten for-Schleife, weil es sonst nicht aktualisieren mit der richtigen Anzahl der übereinstimmenden zahlen. Sie müssen compareArrays() die richtigen Parameter (userDigits und lotteryNumbers), und setzen Sie sameNum gleich dieses Ergebnis.
Einige Punkte, die Sie nützlich finden könnten:
Möchten Sie vielleicht die Verwendung
NUM_DIGITS
für die Einleitung des arrays, da das ist der ganze Punkt, der mit benannte Konstante:Können Sie
Arrays.toString()
zur Ausgabe von arrays, z.B.:Anstelle von mehreren
if
s verwendenswitch
plus wiederholen Sie nicht die ganze print-Anweisung, nur die Zuordnung der Teil, der sich unterscheidet:Habe ich aktualisiert den code mit den änderungen, die Sie benötigen.
Die anderen Vorschläge könnte etwas sein, das Sie einbauen möchten (wie die switch/case).