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 resolved

    vor 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 resolved

    Dieses 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 name

    Nein.



  • Hi,

    die Klasse Lotto, sollte auch noch public sein...

    Beste Grüße
    Jan



  • hi
    ich habe hier eine main klasse

    public 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 reset

    bitte 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 reset

    grob 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 gemacht

    public Object get()
      {
    	  int[] zahlen = new int[6]; 
    	  for (int i = 1; i < 6; i++) {
    	  zahlen[1] = (int) (Math.random()*49); 
      }
    

    geht das so??


Anmelden zum Antworten