• Willkommen im Geoclub - dem größten deutschsprachigen Geocaching-Forum. Registriere dich kostenlos, um alle Inhalte zu sehen und neue Beiträge zu erstellen.

Lua Editor, Tabelle/Map in lua realisieren?

Krolock

Geocacher
Hallo,
ich versuche gerade den lua code per Editor zu erweitern. Dabei bin ich auf IntelliJ Idea 10 gestoßen. Dort gibt es ein lua plugin, dass mir nicht nur code highlighting, sondern auch code completition bietet.
Nun stellt sich aber die Frage, wie ich den programmierten Code nach Urwigo portierte?
Konkret schwebt mir ein Monopoly-Spiel as Wherigo vor.
Dabei habe ich vor, die Berechnung der Miete, wenn der Spieler eine bebaute "Straße" (Zone) erreicht, aus einer Tabelle - besser noch Map- mit den Mietpreisen pro Wohnung zu berechnen.
Die Map soll quasi folgendermaßen aussehen
Code:
miete[BadStraßeHaus] = 250
miete[TurmStraßeHaus] = 300
...
miete[SchlossalleHaus] = 5000
Wie kann ich diese Tabelle/Map in lua realisieren und wie bekomme ich das ganze in Urwigo eingebunden?
Bei der Berechnung soll dann abhängig von der Zone in der ich bin, der passende Wert aus der Tabelle abgefragt werden. Kann ich das Object Wherigo.Zone erweitern, oder muss ich mir mit einem internen Mapping Zone.Name behelfen?
Code:
objRentToPay = miete[Zone.name] * nrOfHouses[Zone.name]
VG Krolock
 
OP
Krolock

Krolock

Geocacher
Nachdem ich vorgestern dumm gefragt habe und die letzten 2 Tage geflucht habe, dass es nirgendswo im Netz ne vernünftige Anleitung zum Thema UserCode in Urwigo gibt (jedenfalls war meine Google-Quälerei erfolglos), habe ich es mit TrialAndError versucht und den von Urwigo generierten Lua-Code genauer untersucht.
Wie die unten angehangene Graphik zeigt, gibt es in Urwigo 3 Stellen wo eigener Lua-Code eingebaut werden kann.
Beginnen wir mit
User directives
Hier können globale Variablen deklariert werden. Im Monopoly-Beispiel ist dies eine Tabelle, die die Mietkosten der Straßen enthält. Z.B. auf der Badstraße mit Index 1 (ja 1 und nicht 0) ist pro Haus 200 EUR fällig.
Die zweite Tabelle speichert die Anzahl der Häuser auf der Straße. Bei der Badstraße wären dies 0 Häuser.

Die zweite interessante Stelle ist
User functions
Hier können Functionen definiert werden, die später aufgerufen werden können. (s.u.)
Im Beispiel wird der Wert der Variable objrentToPay (entspricht der voher in Urwigo angelegten Variablen rentToPay auf die Miete für die Chausseestraße gesetzt. Der Index 4 ist hier der Übersichtlichkeit fix. Natürlich kann man den flexibel bestimmen.

Zum Schluss widmen wir uns dem
User Code
Mit Hilfe des UserCode Bausteines kann im Urwigo Flussdiagramm an vielen Stellen UserCode eingesetzt werden. Hier wird die oben definierte Funktion aufgerufen.
Wenn man den Wherigo startet zeigt er einem zunächst den Initialwert der Variable an, dann wird die selbst definierte Funktion aufgerufen, sodass die zweite Messagebox 1200 (400 pro Haus * 3 Häuser) liefert.

Da dies mein erster Versuch mit UserCode war, bin ich für Kritik und Anregungen dankbar.
VG Krolock
 

Anhänge

  • urwigoUserCode.PNG
    urwigoUserCode.PNG
    39,4 KB · Aufrufe: 600
OP
Krolock

Krolock

Geocacher
Um das ganze noch ein wenig flexibler zu gestalten, kann man den Index von einer Variablen - hier Pos für Position- abhängig machen.
Dabei ist es egal, ob der Wert über den Set-Baustein oder als UserCode gesetzt wird.

Die Ausgabe ist 42 (Initialwert), 1200 (3*400), 1000 (2*500)
 

Anhänge

  • urwigoUserCode2.PNG
    urwigoUserCode2.PNG
    62,2 KB · Aufrufe: 595
Oben