VB : Zufall Zahlen (keine Doppelten)

Dieses Thema VB : Zufall Zahlen (keine Doppelten) im Forum "Webentwicklung, Hosting & Programmierung" wurde erstellt von Alexander16, 13. Nov. 2002.

Thema: VB : Zufall Zahlen (keine Doppelten) Hi Leute :D Ich habe mal wieder ein Problem !! Ich will mir ein Quiz-Spiel basteln. Die (15)Fragen werden per...

  1. Hi Leute :D

    Ich habe mal wieder ein Problem !!

    Ich will mir ein Quiz-Spiel basteln.
    Die (15)Fragen werden per Zufall gewählt.
    Wenn alle durchgefragt sind werden die Ergebnisse ausgerechnet.

    Das Problem:
    Wie kann ich das machen das sie per Zufall gewählt werden, aber im Spiel keine doppelten Fragen auftauchen?.

    Rufe um Hilfe !!!! *gg*

    Mfg Alexander
     
  2. Hmm... ich weiß nicht wie einfach oder kompliziert man das machen kann, aber ansich ist das ganz einfach.

    Du erzeugst einfach deine Zufallszahl und lässt dann die Frage anzeigen. Dabei packst du die Zahl einfach in einen String.

    Dim gestellteFragen as String

    Und dann erweiterst du den String einfach mit der jeweils gestellen Fragennummer

    gestellteFragen=gestellteFragen + nummer

    Alles was du jetzt nur ncoh machen musst ist eine If-Bedingung schreiben in der du prüfst, ob die erzielte Zufallszahl bereits in deinem String enthalten ist.

    If Instr.... then

    Das wars dann schon.
     
  3. Mit nem String wäre es evtl. zu kompliziert bzw. das Progi könnte Probleme damit bekommen. Und zwar, wenn:
    1. Frage hat die ID 12 --> String=12
    2. Frage hat die ID 21 --> String=1221;

    Wenn du jetzt die Frage mit der ID 22 hinzufügen willst, wird das - wenn ich dich richtig verstanden habe - aber nicht gehen, da in dem String 1221 die 22 ja vorhanden ist.

    Pack die IDs besser in ein Array, das du dann immer durchläufst und die aktuelle Frage-ID mit den Feldern im Array vergleichst.

    Ich hab zwar keine Ahnung von VB, aber Syntaxmäßig dürfte das folgende auf jeden Fall zu verstehen sein:
    Code:
    passt = true;
    anzahl=0;
    while (anzahl<15)    //Du willst 15 Frage generieren
    {
     zahl=random(...);      //Hier halt die zufällige Zahl ermitteln
     for (j=0; j<laenge_des_arrays; j++)
     {
      //Zahl mit Array-Feld an der Stelle j vergleichen. 
      //Wenn eine Übereinstimmung ist, dann passt auf false setzen
      //und innere FOR-Schleife beenden
      if (zahl == das_array[j])   
      {
       passt = false;
       break;
      }
     }
     //Wenn keine Übereinstimmung
     if (passt == true)
     {
      //Die zahl an das Ende des Arrays einfügen, um spätere
      //Fragen auch mit dieser vergleichen zu können
      das_array[laenge_des_arrays]=zahl;
      ...    //Hier die Frage ausgeben und so weiter
     }
     anzahl++
    }
    
    Ich hoffe es war verständlich...

    Greetz
    Michael
     
  4. Hi,

    das ist aber kein Problem, sondern nur, wenn man eins draus macht ;D

    Es ist ja nun kein Ding ncoh nen Komma dazwischen zu packen ;D
     
  5. da hast du dann auch wieder recht... ;D
     
  6. Sorry ich versteh nicht ganz wie das jetzt gehen soll bin noch Anfänger in Sachen programmieren

    Gibt es vielleicht noch einfachere Lösungen?

    Mfg Alexander
     
  7. Verstehst du es vom Prinzip her nicht oder weisst du nicht wie du das in VB umsetzen sollst?

    Ich habe nämlich leider keinen Schimmer von VB.
     
  8. Hi

    Sorry für die späte Antwort. ;D

    Also ich weiß nicht wie ich es in Visual Basic schreiben soll. ???

    Mfg Alexander
     
  9. Da kann ich dir dann leider auch net helfen...
    Sorry
     
  10. '//Deklaration:
    private Type sPP
    Frage as String
    Antwort as String
    used as Boolean
    end type
    private Fragen(1 to 15) as sPP

    for i=1 to 15
    if Fragen(i).used=False then
    fragen(i).used=true
    exit for
    end if
    next i

    Der klappt 100 %
    mfg
    Xivender
     
Die Seite wird geladen...

VB : Zufall Zahlen (keine Doppelten) - Ähnliche Themen

Forum Datum
Bekomme zufällig Split-Screens Windows 10 Forum 16. Okt. 2015
Excel 2010: Zufallsauswahl innerhalb eines Bereiches Microsoft Office Suite 24. Okt. 2011
Taskplaner Zufallszeiten Windows XP Forum 5. Jan. 2010
MP3-CD - zufällige Titel-Reihenfolge? Audio, Video und Brennen 25. Okt. 2008
Server Drucker Prob, oder alles nur Zufall?? Windows XP Forum 14. Jan. 2007