Lottoziehung
-
hi
ich habe ein programm Lottoziehung aber es komme da einige fehler
kann mir da einer vielleicht helfen??/* * Lotto.java * * Version: * $Id$ * * Revisions: * $Log$ */ /** * Play a simple Lotto game. */ import RitIo; class Lotto { /** * Numbers are to be drawn from the range [1..MAX_NUMBERS] */ private static final int MAX_NUMBERS = 49; /** * The number of numbers to be drawn. */ private static final int MAX_SELECT = 6; /** * Main method for the program. * * @param args command line arguments (ignored) * */ public static void main(String args[]) { // Ask the user for MAX_SELECT numbers out of [1..MAX_NUMBERS] int[] selectedNumbers = new int[MAX_SELECT]; // by the user for (int index = 0; index < MAX_SELECT; ++index) { int selected = RitIo.getInteger("Number " + (index + 1) + ": "); selectedNumbers[index] = selected; } // Draw MAX_SELECT numbers from the ball box // and compare them with the selected numbers BallBox box = new BallBox(MAX_NUMBERS); int guessed = 0; for (int index = 0; index < MAX_SELECT; ++index) { int drawnNumber = box.nextBall() + 1; System.out.print("Got " + drawnNumber + ": "); // Check if drawnNumber is in selectedNumbers boolean found = false; for (int i = 0; !found && i < MAX_SELECT; ++i) { found = drawnNumber == selectedNumbers[i]; } if (found) { System.out.println("Guessed!"); ++guessed; } else { System.out.println("Missed."); } } System.out.println("You guessed " + guessed + " from " + MAX_SELECT + "."); } }
-
einfacher wäre es, wenn du uns noch die fehlermeldung postest
-
also ich bekomme bei dem import RitIo ein fehler
The import RitIo cannot be resolvedvor dem public static void muss doch noch
public class name
wenn ich das aber mache dann bekomme ich im ganzen main ein fehler (cannot be resolved)
-
Jambe66 schrieb:
also ich bekomme bei dem import RitIo ein fehler
The import RitIo cannot be resolvedDieses Package existiert offensichtlich nicht in der Java-Library. Und wenn du's nicht selber erstellt hast, wird's natürlich nicht gefunden.
vor dem public static void muss doch noch
public class nameNein.
-
Hi,
die Klasse Lotto, sollte auch noch public sein...
Beste Grüße
Jan
-
hi
ich habe hier eine main klassepublic static void main(String[] args) { public static void main(String[] args) { Ziehungsgeraet lotto = new Ziehungsgeraet(1,2,3,4,5,6,7,8,9,10, 11,12,13,14,15,16,17, 18,19,20,21,22,23,24, 25,26,27,28,29,30,31, 32,33,34,35,36,37,38, 39,40,41,42,43,44,45, 46,47,48,49); for (int k=1;k<=10;k++) { System.out.print("Ziehung "+k+": gezogene Zahl:"); Object[] y=z.get(6); for (int i=0; i<y.length; i++) System.out.print(" " +y[i]); System.out.println(); z.reset(); } }
ich muss dazu eine klasse Ziehungsgeraet schreiben
die klasse muss folgende methoden besitzen:
Ziehungsgeraet(Object[] x) //Konstruktor der das Ziehungsgerät mit den übergebenen Objekten füllt
Ziehungsgeraet() //Konstruktor, der ein leeres Ziehungsgeraet erzeugt
void insert(Object x) //füllt ein weiteres Objekt in das Gerät
Object get()
Object[] get(int m)
void resetbitte nicht falsch verstehen ich will net die komplette lösung haben. ich habe nur ein paar fragen:
für was genau sind die Methoden Ziehungsgeraet(Object[] x) und void insert(Object x) was muss da alles rein
-
Hi,
deine sogenannte "main"-Klasse gibt es so nicht. Außerdem hast du einfach nur eine main-Methode in eine main-Methode gepackt.
Das müsste eher so aussehen:public class Klassenname { public static void main(String[] args) { /* ... */ } }
Dann wird das auch nicht funktionieren:
Ziehungsgeraet lotto = new Ziehungsgeraet(1,2,3,4,5,6,7,8,9,10, 11,12,13,14,15,16,17, 18,19,20,21,22,23,24, 25,26,27,28,29,30,31, 32,33,34,35,36,37,38, 39,40,41,42,43,44,45, 46,47,48,49);
Weil es ja nur einen Konstruktor namens Ziehungsgeraet(Object[] o) gibt.
Da der Konstruktor nur Objekte nimmt, musst du deine Zahlen in Klassen packen. Dafür gibt es schöne Wrapper-Klasse, wie z.B. Integer.Bastel das mal so:
Object[] zahl=new Object[49]; for(int i=0; i<zahl.length; ++i) zahl[i]=new Integer(i+1); Ziehungsgeraet lotto=new Ziehungsgeraet(zahl);
Die Klasse Integer findest du im package java.lang.
ich muss dazu eine klasse Ziehungsgeraet schreiben
die klasse muss folgende methoden besitzen:
Ziehungsgeraet(Object[] x) //Konstruktor der das Ziehungsgerät mit den übergebenen Objekten füllt
Ziehungsgeraet() //Konstruktor, der ein leeres Ziehungsgeraet erzeugt
void insert(Object x) //füllt ein weiteres Objekt in das Gerät
Object get()
Object[] get(int m)
void resetgrob würde die Klasse ja so aussehen:
import java.util.ArrayList; public class Ziehungsgeraet { private ArrayList value; public Ziehungsgeraet() { value=new ArrayList(); } public Ziehungsgeraet(Object[] o) { value=new ArrayList(); for(int i=0; i<o.length; ++i) value.add(o[i]); } public void insert(Object o) { value.add(o); } public Object get() { // Was hier halt gemacht werden soll } public Object[] get(int m) { // Was hier halt gemacht werden soll } public void reset() { // Soll hier alles wieder gelöscht werden? } }
Ich vermute nun mal, dass man mit dem Konstruktor Ziehungsgeraet(Object[] o) einfach ein Array mit Werten belegt. Mit der methode insert(Object o) soll einfach ein Object hinzugefügt werden.
-
das Hauptpogramm("main") haben wir von prof bekommen wir müssen zu dem hauptprogramm eine klasse ziehungsgeraet schreiben und die methoden die ich aufgeschrieben habe benutzen.
zu dem mit dem interger. ich muss mit der klasse object arbeiten auf diese weise kann man mit Ziehungsgraet später auch beispilesweise auch zufällig karten aus einem Skartspiel ziehen. und zu public void reset() die zahlen die gezogen wurden sollen wieder in den "Topf" zurück damit sie in der nächsten ziehung wieder vorhanden sind
-
Hi,
ich hab ja auch hier alles mit nem Object-Array gemacht. Da wird ja implizit Integer zu Object gecastet. Die Klasse Ziehungsgerät ist also auch immernoch kompatibel zu allen anderen Klassen
Deshalb müsstest du nur noch die Methodenrümpfe von get(), get(int m) und reset() programmieren, und es würde ja klappen.
-
Du musst sowas für die Kugeln nehmen
║◌ ◌ ◌ ◌ ◌◌ ◌ ◌║
╚════════╝
-
void reset braucht man doch garnicht oder?? weil im hauptprogramm ganz unten mit z.reset(); alle zahlen wieder zurückgelegt werden oder??
dann habe ich noch das hier gemachtpublic Object get() { int[] zahlen = new int[6]; for (int i = 1; i < 6; i++) { zahlen[1] = (int) (Math.random()*49); }
geht das so??