Vierstellige Random Zahl

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • Wie kann ich eine vierstellige Randomzahl hervorrufen ?


    Ich hätte vielleicht daran gedacht, vier Arrays a 10 Zahlen zu nehmen von 1-10 und dann eine vierstellige Zahl aus den vier Arrays generieren zu lassen, jedoch weiß ich nicht ob soetwas geht und wie man es umsetzen müsste :D

    VIVA LA REVOLUCIÓN

  • Die Lösung von Kaliber ist mal mehr als hässlich.
    random(9000) + 1000


    Zitat

    Sagen wir ich benutze es als zufällig generierte Telefonnummer wenn man den Server betritt, wie kann ich dann verhindern, dass Personen die gleiche Nummer erhalten ?


    Eine Liste führen wäre das Einfachste. Die Liste wäre aber rekativ schnell voll, wenn du nur 4-Stellige Zahlen erlaubst.

  • Ich benutze Dateien, also .ini, aber steige bald auf MYSQL um, aber ich könnte doch eigentlich aus den Dateien rauslesen lassen, ob die Telefonnummer ungleich ist, sonst soll er noch eine neue generieren und wieder prüfen oder ?

    VIVA LA REVOLUCIÓN

  • Das Problem an Dateien ist alle einmal durchzuschauen (sofern du nicht eine numerische zählweise nutzt). Bei MYSQL ist das kein Problem zu schauen ob die Nummer schon verwendet ist und dann eine neue zu generieren. Was bei Dateien geht ist alle verwendeten Nummern in eine Datei zu schreiben. Entweder über numerische Keys (bei dini) oder als einen String mit Delimitern.

  • ich habe einfach die startnummer gespeichert und sobald jemand aufn server kommt generiere ich so eine handynummer:

    format(string,sizeof(string),"01%d%d",50+random(27),Handynummer); //Handynummer ist hier was ich in der datei habe.

    Und dann erhöhe ich die variable (hier:) Handynummer um ein gewissen Wert und speicher die neu. Der nächste der drauf kommt bekommt 100%ig eine neue auch wenn das random(27)+50 aufs gleiche trifft, weil dies nur für die reallife nr gemacht wird (0150-0176)


    So speicher ich nur eine kleine Zahl und gut ist.

  • Du musst eine Anfrage (Query) senden und eine beliebige Spalte aus der Datenbank versuchen auszulesen. z.B.



    new str[128];
    format(str, sizeof(str), "SELECT BeliebigeSpalteAusDerDatenbank FROM Datenbankname WHERE Nummer='%i'", nummer); //Nummer= generierte zufällige Zahl
    mysql_query(str);
    mysql_store_result();
    if(!mysql_num_rows())
    {
    //Nummer exisiert nicht
    }
    else
    {
    //Nummer existiert
    }
    mysql_free_result();


    mysql_num_rows() gibt dir also die Anzahl an Ergebnissen zurück. Wenn also die Anzahl null ist, existiert die Nummer nicht.


    Mfg,
    UncleSUb