2016-09-21 2 views
-1

Ich habe ein Zufallselement-Generator meiner ersten Text-Adventure-Spiel zu schaffen, um genauer zu sein, dies:Generierung von Zufallszahlen und Arrays

Random Generation = new Random(); 
    List<Integer> interact = new ArrayList<Integer>(); 
    for (int generator = Generation.nextInt(5) + 3; generator > 0; generator--) { 
     interact.add(Generation.nextInt(10)); 
    }; 
    System.out.println(interact); 

Hier Generator definiert die Menge der Elemente, und die Interaktion seiner eine Liste, die Zufallszahlen enthält, die verschiedene interaktive Objekte darstellen, die Sache ist, ich brauche Elemente nicht wiederholen, ich habe einige vorherige Fragen gesehen, aber ich denke nicht, dass sie auf meinen Fall, zumindest vollständig anwenden.

Ich dachte in einem int a = Generation.nextInt(3); if (a != interact[]) {interact.add(a)} else {generator++};, aber ich weiß nicht, wie man einen [any] im Vergleich von Arrays setzen.

Auch als extra (nicht meine Hauptfrage, also wenn es nicht möglich ist, ist mir egal, zu viel) Können Sie festlegen, welche Elemente können wiederholt werden, und welche nicht, in einem einzigen Generator? Oder vielleicht eine bessere zufällige, für diesen speziellen Fall? Danke fürs Lesen hier.

Edit: Habe das nicht gesehen, sorry.

+4

"* Ich habe einige vorherige Fragen gesehen, aber ich denke nicht, dass sie auf meinen Fall zutreffen *" => Sie haben also den Vorschlag gesehen, die Zahlen in ein Array zu legen und zu mischen? Warum funktioniert es nicht für dich? – assylias

+0

Eigentlich habe ich dich nicht perfekt verstanden, willst du zufällige eindeutige Schlüssel generieren? –

+0

@BasilBattikhi Ich denke, ja, ich brauche den Generator nicht Elemente wiederholen, aber immer die Anzahl der Elemente des Generators var, ich bearbeitete die Frage, ich habe einen Fehler in Interaktionsbereich, ich machte es größer. – AnUnnoticedPotato

Antwort

0

IIRC Ihre Anforderungen sind:

  • Spiel muss eine "Elementliste" der Größe haben 3 <= numberOfItems <= 8. Dabei muss numberOfItems jedesmal zufällig ausgewählt werden.
  • Die „Elementliste“ muss genau numberOfItems Zufallszahlen zwischen 0 enthalten und 10.

Wie wäre das?

Random generator = new Random(); 
    Set<Integer> interact = new HashSet<Integer>(); 
    int numberOfItems = generator.nextInt(5) + 3; 
    while (interact.size() < numberOfItems) { 
     interact.add(generator.nextInt(10)); 
    } 

Es hält das Hinzufügen verschiedene Elemente zu interact, bis sie die vorgesehene Kapazität numberOfItems erreicht.

+1

sollten Sie die nachfolgende entfernen; in der While-Schleife –

-1

Ihre Modifizieren Sie diese Art und Weise für Schleife:

for (int generator = Generation.nextInt(5) + 3; generator > 0; generator--) { 
     int randomedNumber = 0; 
     do { 
      randomedNumber = Generation.nextInt(10); 
     } while(interact.contains(randomedNumber)) 
     interact.add(randomedNumber); 
}; 

Sie zufällig eine Zahl, wenn sie in einer Liste ist - Sie zufällig wieder, wenn es nicht ist - Sie werden es in die Liste aufnehmen und die Bewegung auf Als nächstes, ziemlich einfach.

Verwandte Themen