CNDG
Würden Sie gerne auf diese Nachricht reagieren? Erstellen Sie einen Account in wenigen Klicks oder loggen Sie sich ein, um fortzufahren.


Ein Forum, in dem sich neue Clonk Entwickler untereinander austauschen können.
 
StartseiteStartseite  PortalPortal  SuchenSuchen  Neueste BilderNeueste Bilder  AnmeldenAnmelden  LoginLogin  

 

 Der Zufall mit Arrays

Nach unten 
5 verfasser
AutorNachricht
Enrique
Generalleutnant
Generalleutnant
Enrique


Männlich Ort : Oelde, NRW
Anmeldedatum : 20.05.08

Der Zufall mit Arrays Empty
BeitragThema: Der Zufall mit Arrays   Der Zufall mit Arrays EmptyMo Jul 14, 2008 12:17 am

Nun zeige ich euch mal, was man tolles und zufälliges mit einem Array + Random erstellen kann. Dazu sollten wir aber erstmal etwas wissen:



Zuerst wollen wir einige "zufällige" Sachen zu Spielstart eines Szens erstellen.

    //-- Szenarioscript--//

    protected func Initialize(){
    var array = [DEK0,DEK1,DEK2,DEK3];
    CreateObject(array[Random(GetLength(array))]);
    }


Der Array speichert erstmal 4 ID's. Danach wird eines der 4 durch Random(GetLength()) rausgesucht und an der Position 0/0 erstellt.

------------------------------------------------------------------------------------------------------------------------

Das selbe Spielchen lässt sich auch mit "Strings" machen. Dazu schluckt der Array einige Strings und diese Rufen wir dann zufällig auf.

    //-- Szenarioscript--//

    protected func Initialize(){
    var array = ["Lava","Water","Acid","Earth"];
    LaunchVolcano(Random(1000),0,RandomX(10,25),array[Random(GetLength(array))]);
    }


Mit diesem Script wird zu Anfang ein toller Vulkan mit zufälligem Material erstellt. Er funktioniert wie oben.

Spoiler:
Nach oben Nach unten
Simsi
Staatssekretär
Staatssekretär
Simsi


Männlich Alter : 31
Ort : Vaihingen/Enz
Anmeldedatum : 30.03.08

Der Zufall mit Arrays Empty
BeitragThema: Re: Der Zufall mit Arrays   Der Zufall mit Arrays EmptyMo Jul 14, 2008 1:40 pm

Man kann dann dadraus doch auch eine tolle funktion basteln =) :

    func CreateArrayObject(array a, int X, int Y, int Owner) {
    var Ding = Random(GetLength(a));
    while(GetType(Ding) != C4V_C4ID) {
    if(counter >= 50) return(0);
    Ding = Random(GetLength(a));
    counter++;
    }
    CreateObject(Ding, X, Y, Owner);
    return(true);
    }


Erzeugt aus dem angegeben Array a, ein zufälliges Objekt, falls das überhaupt eine ID ist. falls er nach 50 durchgängen keine ID gefunden hat, hört er auf.
Nach oben Nach unten
Gast
Gast




Der Zufall mit Arrays Empty
BeitragThema: Re: Der Zufall mit Arrays   Der Zufall mit Arrays EmptyMo Jul 14, 2008 5:06 pm

Das mit Random(GetLengh()) funktioniert nicht, weil Random immer 1 höher sein muss.
Nach oben Nach unten
Biber
Fähnrich
Fähnrich
Biber


Anmeldedatum : 28.06.08

Der Zufall mit Arrays Empty
BeitragThema: Re: Der Zufall mit Arrays   Der Zufall mit Arrays EmptyMo Jul 14, 2008 7:05 pm

Also muss man dann RandomX(1, GetLenght(array)) schreiben oder?
Nach oben Nach unten
Enrique
Generalleutnant
Generalleutnant
Enrique


Männlich Ort : Oelde, NRW
Anmeldedatum : 20.05.08

Der Zufall mit Arrays Empty
BeitragThema: Re: Der Zufall mit Arrays   Der Zufall mit Arrays EmptyMo Jul 14, 2008 7:32 pm

GetLength gibt ja die größe des Arrays zurück. Alternativ könnte man auch Random(Anz. des Arrays) bzw RandomX (1, anz des Arrays) schreiben
Nach oben Nach unten
Simsi
Staatssekretär
Staatssekretär
Simsi


Männlich Alter : 31
Ort : Vaihingen/Enz
Anmeldedatum : 30.03.08

Der Zufall mit Arrays Empty
BeitragThema: Re: Der Zufall mit Arrays   Der Zufall mit Arrays EmptyDi Jul 15, 2008 2:58 pm

geht auch

    Random(GetLength(array)+1);
??
Nach oben Nach unten
Enrique
Generalleutnant
Generalleutnant
Enrique


Männlich Ort : Oelde, NRW
Anmeldedatum : 20.05.08

Der Zufall mit Arrays Empty
BeitragThema: Re: Der Zufall mit Arrays   Der Zufall mit Arrays EmptyDi Jul 15, 2008 7:07 pm

müsste gehen, habs aber noch nie ausprobiert xP
Nach oben Nach unten
Caesar
Clonk
Clonk
Caesar


Anmeldedatum : 08.09.08

Der Zufall mit Arrays Empty
BeitragThema: Re: Der Zufall mit Arrays   Der Zufall mit Arrays EmptyMo Sep 08, 2008 2:41 pm

So ein Unsinn. Ich mache mal ein Beispiel.
Ein Array der Länge 5: ["Erster Eintrag",2,"dritter","Nummer 4",5]
Um nun auf den ersten eintrag zuzugreifen, nimmt man aArray[0], also ist aArray[0] == "Erster Eintrag". Auf den letzten Eintrag referenziert also aArray[4], aArray[GetLength(aArray)-1].
Random(x) gibt ein Intervall von null bis x zurück, mathematisch so [0;x[, was bedeutet, dass x nie vorkommt, aber werte über x-1 schon (x ausgeschlossen). Da es in Clonk aber nun mal keine Fließkommazahlen gibt, wird abgerundet, der größte Wert ist also x-1, der kleinste ist 0. Optimal für das Arbeiten mit Arrays.

Schlussfolgerung: aArray[Random(GetLength(aArray))] ist korrekt.
Nach oben Nach unten
Gast
Gast




Der Zufall mit Arrays Empty
BeitragThema: Re: Der Zufall mit Arrays   Der Zufall mit Arrays EmptyMo Sep 08, 2008 4:43 pm

Caesar schrieb:
Random(x) gibt ein Intervall von null bis x zurück
Unsinn, eine Zahl von 0 bis x-1. Und ausserdem ist ein Intervall etwas ganz anderes?
Nach oben Nach unten
Mozart
Kanzler
Kanzler
Mozart


Männlich Alter : 31
Ort : Vaihingen/Enz
Anmeldedatum : 24.02.08

Der Zufall mit Arrays Empty
BeitragThema: Re: Der Zufall mit Arrays   Der Zufall mit Arrays EmptyMo Sep 08, 2008 6:00 pm

2 caesaren? Shocked
Nach oben Nach unten
http://www.funamfag.de
Caesar
Clonk
Clonk
Caesar


Anmeldedatum : 08.09.08

Der Zufall mit Arrays Empty
BeitragThema: Re: Der Zufall mit Arrays   Der Zufall mit Arrays EmptyMo Sep 08, 2008 6:06 pm

Caeser schrieb:

Unsinn, eine Zahl von 0 bis x-1. Und ausserdem ist ein Intervall etwas ganz anderes?
Hmm, stimmt wohl, Random gibt eine Zahl innerhalb dieses Intervalls zurück. Und ich meine damit nicht das C4Script Random...

Mozart schrieb:
2 caesaren? Shocked
Das war leider schon immer so... Wir hatten uns zufällig auf unterschiedlichen Seiten gleichzeitig angemeldet.
Nach oben Nach unten
Mozart
Kanzler
Kanzler
Mozart


Männlich Alter : 31
Ort : Vaihingen/Enz
Anmeldedatum : 24.02.08

Der Zufall mit Arrays Empty
BeitragThema: Re: Der Zufall mit Arrays   Der Zufall mit Arrays EmptyMo Sep 08, 2008 6:15 pm

du hast dirgrad selber wiedersprochen

1. Aussage:
Random(x) gibt ein Intervall zurück
Gegenaussage: Random(x) gibt eine Zahl innerhalb eines Intervalls zurück
deine Aussage: Stimmt nciht, Random(x) gibt eine Zahl innerhalb eines Intervalls zurück
Nach oben Nach unten
http://www.funamfag.de
Caesar
Clonk
Clonk
Caesar


Anmeldedatum : 08.09.08

Der Zufall mit Arrays Empty
BeitragThema: Re: Der Zufall mit Arrays   Der Zufall mit Arrays EmptyDi Sep 09, 2008 11:47 am

Jaja, die kleinen Unschärfen in der deutschen Sprache. Razz
Stimmt wohl == Das, was du gesagt hast, ist leider (aus meiner sicht) richtig.
Nach oben Nach unten
Gast
Gast




Der Zufall mit Arrays Empty
BeitragThema: Re: Der Zufall mit Arrays   Der Zufall mit Arrays EmptyDi Sep 09, 2008 5:11 pm

Zitat: "Ich mag keine Leute, die Geburtsdaten in ihre Namen schreiben..."
:|
Nach oben Nach unten
Gesponserte Inhalte





Der Zufall mit Arrays Empty
BeitragThema: Re: Der Zufall mit Arrays   Der Zufall mit Arrays Empty

Nach oben Nach unten
 
Der Zufall mit Arrays
Nach oben 
Seite 1 von 1
 Ähnliche Themen
-
» Wie geth? - Arrays
» Mehrdimensionale arrays
» Objekte in Landscape einbauen

Befugnisse in diesem ForumSie können in diesem Forum nicht antworten
CNDG :: Fortgeschrittene :: Tutorials-
Gehe zu: