Antwort auf: Unterschiedliche Variablen ansprechen mit einer zwischenvariable

Startseite Foren Deutsches LiveCode-Forum Unterschiedliche Variablen ansprechen mit einer zwischenvariable Antwort auf: Unterschiedliche Variablen ansprechen mit einer zwischenvariable

#516
hauke
Administrator

    Hallo,

    Du sprichst hier ein wichtiges Prinzip beim Programmieren an: Das Verwenden von Variablen, die mehrere Werte (zum Beispiel pro Spielernummer) enthalten.

    Die Art und Weise, wie Du es versucht hast, funktioniert leider nicht. Wenn Du „strafen“&c verknüpfst, hast Du eine Zeichenkette, die Du aber nicht einfach als Variable verwenden kannst (mit speziellen Tricks ginge das zwar, aber das ist absolut kein empfohlenes Vorgehen).

    Erfahrene Programmierer verwenden hier sogenannte Arrays – das sind Variablen, die mehrere Werte enthalten, die über den jeweiligen Index in eckigen Klammern angesprochen werden können. Zum Beispiel kannst Du eine Variable spielerstrafen anlegen, und dann in spielerstrafe[1] die Strafe für Spieler 1 abspeichen und in spielerstrafe[2] die Strafe für Spieler 2. Diese kannst Du dann auch mit Variablen ansprechen – spielerstrafe[x]. Als globale Variable müsstest Du dabei nur einmal die Variable spielerstrafe festlegen.

    In LiveCode geht es aber auch noch anders ganz bequem. Du könntest die Spielerstrafen auch in jeweils einer Zeile der Variable spielerstrafen ablegen.

    put strafe1 into line x of spielerstrafe.

    Hier hättest Du statt einem Index also eine Zeilennummer, in der der gewünschte Wert geschrieben wird. Der Vorteil ist, dass Du dann in der Variable spielerstrafe eine übersichtliche Liste hast, die Du auch einfach in eine kleine Datei abspeichern kannst, um sie beim Programmstart dann wieder einzulesen.

    Zu guter Letzt geht es natürlich auch mit einer Datenbank (sqLite). Das ist aber fast ein bisschen überdimensioniert, wenn es hier nur um eine Liste von Namen und Strafen geht. Du müsstest Dich dann erstmal in den Umgang mit Datenbanken einarbeiten. Der Vorteil wäre: Du bräuchtest die Namen und Strafen der Spieler dann nicht mehr manuell zu speichern, sondern sie wären für das Programm dann immer in der Datenbank verfügbar. So etwas empfehle ich aber für umfangreichere Projekte.

    Viel Erfolg mit Deinem Vorhaben!

    Hauke